# Pastebin asXsO3un fossfreedom_: static gboolean monitor_callback_delayed (gpointer user_data) { MonitorCallbackInfo *info; MenuMonitorEventInfo *event_info; MenuMonitorEvent event; MenuMonitor *menu_monitor; info = (MonitorCallbackInfo *) user_data; menu_monitor = info->menu_monitor; if (info->weak_ptr) { switch (info->eflags) { case G_FILE_MONITOR_EVENT_CHANGED: event = MENU_MONITOR_EVENT_CHANGED; break; case G_FILE_MONITOR_EVENT_CREATED: event = MENU_MONITOR_EVENT_CREATED; break; case G_FILE_MONITOR_EVENT_DELETED: event = MENU_MONITOR_EVENT_DELETED; break; default: event = MENU_MONITOR_EVENT_INVALID; } if (event != MENU_MONITOR_EVENT_INVALID) { event_info = g_new0 (MenuMonitorEventInfo, 1); event_info->path = g_file_get_path (info->child); event_info->event = event; event_info->monitor = menu_monitor; menu_monitor_queue_event (event_info); } } g_object_remove_weak_pointer (G_OBJECT (menu_monitor->monitor), &(info->weak_ptr)); g_object_unref (info->child); g_free (info); return FALSE; }