static void dir_changed (GFileMonitor *monitor, GFile *child, GFile *other_file, GFileMonitorEvent event_type, gpointer user_data) { char *uri, *to_uri; uri = g_file_get_uri (child); to_uri = NULL; if (other_file) { to_uri = g_file_get_uri (other_file); } switch (event_type) { default: case G_FILE_MONITOR_EVENT_CHANGED: { /* ignore */ } break; case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: { nautilus_file_changes_queue_file_changed (child); } break; case G_FILE_MONITOR_EVENT_UNMOUNTED: case G_FILE_MONITOR_EVENT_DELETED: { nautilus_file_changes_queue_file_removed (child); } break; case G_FILE_MONITOR_EVENT_CREATED: { nautilus_file_changes_queue_file_added (child); } break; } g_free (uri); g_free (to_uri); schedule_call_consume_changes (); }
static gboolean receive_xds (NautilusTreeViewDragDest *dest, GtkWidget *widget, guint32 time, GdkDragContext *context, int x, int y) { GFile *location; const guchar *selection_data; gint selection_format; gint selection_length; selection_data = gtk_selection_data_get_data (dest->details->drag_data); selection_format = gtk_selection_data_get_format (dest->details->drag_data); selection_length = gtk_selection_data_get_length (dest->details->drag_data); if (selection_format == 8 && selection_length == 1 && selection_data[0] == 'F') { gtk_drag_get_data (widget, context, gdk_atom_intern (NAUTILUS_ICON_DND_RAW_TYPE, FALSE), time); return FALSE; } else if (selection_format == 8 && selection_length == 1 && selection_data[0] == 'S') { g_assert (dest->details->direct_save_uri != NULL); location = g_file_new_for_uri (dest->details->direct_save_uri); nautilus_file_changes_queue_file_added (location); nautilus_file_changes_consume_changes (TRUE); g_object_unref (location); } return TRUE; }