diff --git a/.cvsignore b/.cvsignore index 488686a..d8f1f46 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -nautilus-2.27.91.tar.bz2 +nautilus-2.27.92.tar.bz2 diff --git a/nautilus-2.21.1-dynamic-search-r2.patch b/nautilus-2.21.1-dynamic-search-r2.patch deleted file mode 100644 index 8f5c9a4..0000000 --- a/nautilus-2.21.1-dynamic-search-r2.patch +++ /dev/null @@ -1,332 +0,0 @@ -diff -up nautilus-2.21.1/configure.in.dynamic-search nautilus-2.21.1/configure.in ---- nautilus-2.21.1/configure.in.orig 2008-02-25 22:14:45.000000000 +0100 -+++ nautilus-2.21.1/configure.in 2008-02-26 11:31:47.979469749 +0100 -@@ -269,49 +269,12 @@ - dnl search implementations - dnl **************************** - --AM_CONDITIONAL(HAVE_TRACKER, false) -- --dnl libtracker checking -- --AC_ARG_ENABLE(tracker, [ --disable-tracker build without tracker support]) --msg_tracker=no --if test "x$enable_tracker" != "xno"; then -- PKG_CHECK_MODULES(TRACKER, tracker >= tracker_minver, [ -- AM_CONDITIONAL(HAVE_TRACKER, true) -- AC_DEFINE(HAVE_TRACKER, 1, [Define to enable tracker support]) -- ] -- msg_tracker=yes, -- [AM_CONDITIONAL(HAVE_TRACKER, false)]) -- AC_SUBST(TRACKER_CFLAGS) -- AC_SUBST(TRACKER_LIBS) --fi -- --dnl ========================================================================== -- -- --AM_CONDITIONAL(HAVE_BEAGLE, false) -- --dnl libbeagle checking -- --AC_ARG_ENABLE(beagle, [ --disable-beagle build without beagle support]) --msg_beagle=no --if test "x$enable_beagle" != "xno"; then -- BEAGLE_PKGCONFIG= -- if $PKG_CONFIG --exists libbeagle-1.0; then -- BEAGLE_PKGCONFIG=libbeagle-1.0 -- else -- BEAGLE_PKGCONFIG=libbeagle-0.0 -- fi -- -- PKG_CHECK_MODULES(BEAGLE, $BEAGLE_PKGCONFIG >= beagle_minver, [ -- AM_CONDITIONAL(HAVE_BEAGLE, true) -- AC_DEFINE(HAVE_BEAGLE, 1, [Define to enable beagle support]) -- ] -- msg_beagle=yes, -- [AM_CONDITIONAL(HAVE_BEAGLE, false)]) -- AC_SUBST(BEAGLE_CFLAGS) -- AC_SUBST(BEAGLE_LIBS) --fi -+# We hardcode beagle and tracker use and then load it dynamically -+AM_CONDITIONAL(HAVE_TRACKER, true) -+AC_DEFINE(HAVE_TRACKER, 1, [Define to enable tracker support]) -+ -+AM_CONDITIONAL(HAVE_BEAGLE, true) -+AC_DEFINE(HAVE_BEAGLE, 1, [Define to enable beagle support]) - - dnl ========================================================================== - -diff -up nautilus-2.21.1/libnautilus-private/nautilus-search-engine-beagle.c.dynamic-search nautilus-2.21.1/libnautilus-private/nautilus-search-engine-beagle.c ---- nautilus-2.21.1/libnautilus-private/nautilus-search-engine-beagle.c.dynamic-search 2007-12-14 04:36:31.000000000 -0500 -+++ nautilus-2.21.1/libnautilus-private/nautilus-search-engine-beagle.c 2007-12-21 22:45:20.000000000 -0500 -@@ -23,10 +23,20 @@ - - #include - #include "nautilus-search-engine-beagle.h" --#include - - #include - #include -+#include -+ -+typedef struct _BeagleHit BeagleHit; -+typedef struct _BeagleQuery BeagleQuery; -+typedef struct _BeagleClient BeagleClient; -+typedef struct _BeagleRequest BeagleRequest; -+typedef struct _BeagleFinishedResponse BeagleFinishedResponse; -+typedef struct _BeagleHitsAddedResponse BeagleHitsAddedResponse; -+typedef struct _BeagleQueryPartProperty BeagleQueryPartProperty; -+typedef struct _BeagleQueryPart BeagleQueryPart; -+typedef struct _BeagleHitsSubtractedResponse BeagleHitsSubtractedResponse; - - struct NautilusSearchEngineBeagleDetails { - BeagleClient *client; -@@ -37,6 +47,127 @@ struct NautilusSearchEngineBeagleDetails - gboolean query_finished; - }; - -+/* We dlopen() all the following from libbeagle at runtime */ -+#define BEAGLE_HIT(x) ((BeagleHit *)(x)) -+#define BEAGLE_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), beagle_request_get_type(), BeagleRequest)) -+#define BEAGLE_QUERY_PART(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), beagle_query_part_get_type(), BeagleQueryPart)) -+ -+typedef enum { -+ BEAGLE_QUERY_PART_LOGIC_REQUIRED = 1, -+ BEAGLE_QUERY_PART_LOGIC_PROHIBITED = 2 -+} BeagleQueryPartLogic; -+ -+typedef enum { -+ BEAGLE_PROPERTY_TYPE_UNKNOWN = 0, -+ BEAGLE_PROPERTY_TYPE_TEXT = 1, -+ BEAGLE_PROPERTY_TYPE_KEYWORD = 2, -+ BEAGLE_PROPERTY_TYPE_DATE = 3, -+ BEAGLE_PROPERTY_TYPE_LAST = 4 -+} BeaglePropertyType; -+ -+/* *static* wrapper function pointers */ -+static gboolean (*beagle_client_send_request_async) (BeagleClient *client, -+ BeagleRequest *request, -+ GError **err) = NULL; -+static G_CONST_RETURN char *(*beagle_hit_get_uri) (BeagleHit *hit) = NULL; -+static GSList *(*beagle_hits_added_response_get_hits) (BeagleHitsAddedResponse *response) = NULL; -+static BeagleQuery *(*beagle_query_new) (void) = NULL; -+static void (*beagle_query_add_text) (BeagleQuery *query, -+ const char *str) = NULL; -+static void (*beagle_query_add_hit_type) (BeagleQuery *query, -+ const char *hit_type) = NULL; -+static BeagleQueryPartProperty *(*beagle_query_part_property_new) (void) = NULL; -+static void (*beagle_query_part_set_logic) (BeagleQueryPart *part, -+ BeagleQueryPartLogic logic) = NULL; -+static void (*beagle_query_part_property_set_key) (BeagleQueryPartProperty *part, -+ const char *key) = NULL; -+static void (*beagle_query_part_property_set_value) (BeagleQueryPartProperty *part, -+ const char * value) = NULL; -+static void (*beagle_query_part_property_set_property_type) (BeagleQueryPartProperty *part, -+ BeaglePropertyType prop_type) = NULL; -+static void (*beagle_query_add_part) (BeagleQuery *query, -+ BeagleQueryPart *part) = NULL; -+static GType (*beagle_request_get_type) (void) = NULL; -+static GType (*beagle_query_part_get_type) (void) = NULL; -+static gboolean (*beagle_util_daemon_is_running) (void) = NULL; -+static BeagleClient *(*beagle_client_new_real) (const char *client_name) = NULL; -+static void (*beagle_query_set_max_hits) (BeagleQuery *query, -+ int max_hits) = NULL; -+static void (*beagle_query_add_mime_type) (BeagleQuery *query, -+ const char *mime_type) = NULL; -+static GSList *(*beagle_hits_subtracted_response_get_uris) (BeagleHitsSubtractedResponse *response) = NULL; -+ -+static struct BeagleDlMapping -+{ -+ const char *fn_name; -+ gpointer *fn_ptr_ref; -+} beagle_dl_mapping[] = -+{ -+#define MAP(a) { #a, (gpointer *)&a } -+ MAP (beagle_client_send_request_async), -+ MAP (beagle_hit_get_uri), -+ MAP (beagle_hits_added_response_get_hits), -+ MAP (beagle_query_new), -+ MAP (beagle_query_add_text), -+ MAP (beagle_query_add_hit_type), -+ MAP (beagle_query_part_property_new), -+ MAP (beagle_query_part_set_logic), -+ MAP (beagle_query_part_property_set_key), -+ MAP (beagle_query_part_property_set_value), -+ MAP (beagle_query_part_property_set_property_type), -+ MAP (beagle_query_add_part), -+ MAP (beagle_request_get_type), -+ MAP (beagle_query_part_get_type), -+ MAP (beagle_util_daemon_is_running), -+ MAP (beagle_query_set_max_hits), -+ MAP (beagle_query_add_mime_type), -+ MAP (beagle_hits_subtracted_response_get_uris), -+#undef MAP -+ { "beagle_client_new", (gpointer *)&beagle_client_new_real }, -+}; -+ -+static void -+open_libbeagle (void) -+{ -+ static gboolean done = FALSE; -+ -+ if (!done) -+ { -+ int i; -+ GModule *beagle; -+ -+ done = TRUE; -+ -+ beagle = g_module_open ("libbeagle.so.1", G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); -+ if (!beagle) -+ return; -+ -+ for (i = 0; i < G_N_ELEMENTS (beagle_dl_mapping); i++) -+ { -+ if (!g_module_symbol (beagle, beagle_dl_mapping[i].fn_name, -+ beagle_dl_mapping[i].fn_ptr_ref)) -+ { -+ g_warning ("Missing symbol '%s' in libbeagle\n", -+ beagle_dl_mapping[i].fn_name); -+ g_module_close (beagle); -+ -+ for (i = 0; i < G_N_ELEMENTS (beagle_dl_mapping); i++) -+ beagle_dl_mapping[i].fn_ptr_ref = NULL; -+ -+ return; -+ } -+ } -+ } -+} -+ -+static BeagleClient * -+beagle_client_new (const char *client_name) -+{ -+ if (beagle_client_new_real) -+ return beagle_client_new_real (client_name); -+ -+ return NULL; -+} - - static void nautilus_search_engine_beagle_class_init (NautilusSearchEngineBeagleClass *class); - static void nautilus_search_engine_beagle_init (NautilusSearchEngineBeagle *engine); -@@ -276,8 +407,11 @@ nautilus_search_engine_beagle_new (void) - { - NautilusSearchEngineBeagle *engine; - BeagleClient *client; -+ -+ open_libbeagle (); - -- if (!beagle_util_daemon_is_running ()) { -+ if (beagle_util_daemon_is_running == NULL || -+ !beagle_util_daemon_is_running ()) { - /* check whether daemon is running as beagle_client_new - * doesn't fail when a stale socket file exists */ - return NULL; -diff -up nautilus-2.21.1/libnautilus-private/nautilus-search-engine-tracker.c.dynamic-search nautilus-2.21.1/libnautilus-private/nautilus-search-engine-tracker.c ---- nautilus-2.21.1/libnautilus-private/nautilus-search-engine-tracker.c.dynamic-search 2007-12-14 04:36:31.000000000 -0500 -+++ nautilus-2.21.1/libnautilus-private/nautilus-search-engine-tracker.c 2007-12-21 22:55:17.000000000 -0500 -@@ -23,11 +23,89 @@ - - #include - #include "nautilus-search-engine-tracker.h" --#include -+#include - #include - #include - -+typedef struct _TrackerClient TrackerClient; -+ -+typedef void (*TrackerArrayReply) (char **result, GError *error, gpointer user_data); -+ -+static TrackerClient * (*tracker_connect) (gboolean enable_warnings) = NULL; -+static void (*tracker_disconnect) (TrackerClient *client) = NULL; -+static void (*tracker_cancel_last_call) (TrackerClient *client) = NULL; -+ -+static void (*tracker_search_metadata_by_text_async) (TrackerClient *client, -+ const char *query, -+ TrackerArrayReply callback, -+ gpointer user_data) = NULL; -+static void (*tracker_search_metadata_by_text_and_mime_async) (TrackerClient *client, -+ const char *query, -+ const char **mimes, -+ TrackerArrayReply callback, -+ gpointer user_data) = NULL; -+static void (*tracker_search_metadata_by_text_and_location_async) (TrackerClient *client, -+ const char *query, -+ const char *location, -+ TrackerArrayReply callback, -+ gpointer user_data) = NULL; -+static void (*tracker_search_metadata_by_text_and_mime_and_location_async) (TrackerClient *client, -+ const char *query, -+ const char **mimes, -+ const char *location, -+ TrackerArrayReply callback, -+ gpointer user_data) = NULL; -+ -+static struct TrackerDlMapping -+{ -+ const char *fn_name; -+ gpointer *fn_ptr_ref; -+} tracker_dl_mapping[] = -+{ -+#define MAP(a) { #a, (gpointer *)&a } -+ MAP (tracker_connect), -+ MAP (tracker_disconnect), -+ MAP (tracker_cancel_last_call), -+ MAP (tracker_search_metadata_by_text_async), -+ MAP (tracker_search_metadata_by_text_and_mime_async), -+ MAP (tracker_search_metadata_by_text_and_location_async), -+ MAP (tracker_search_metadata_by_text_and_mime_and_location_async) -+#undef MAP -+}; -+ -+static void -+open_libtracker (void) -+{ -+ static gboolean done = FALSE; - -+ if (!done) -+ { -+ int i; -+ GModule *tracker; -+ -+ done = TRUE; -+ -+ tracker = g_module_open ("libtrackerclient.so.0", G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); -+ if (!tracker) -+ return; -+ -+ for (i = 0; i < G_N_ELEMENTS (tracker_dl_mapping); i++) -+ { -+ if (!g_module_symbol (tracker, tracker_dl_mapping[i].fn_name, -+ tracker_dl_mapping[i].fn_ptr_ref)) -+ { -+ g_warning ("Missing symbol '%s' in libtracker\n", -+ tracker_dl_mapping[i].fn_name); -+ g_module_close (tracker); -+ -+ for (i = 0; i < G_N_ELEMENTS (tracker_dl_mapping); i++) -+ tracker_dl_mapping[i].fn_ptr_ref = NULL; -+ -+ return; -+ } -+ } -+ } -+} - - struct NautilusSearchEngineTrackerDetails { - NautilusQuery *query; -@@ -259,6 +337,12 @@ nautilus_search_engine_tracker_new (void - NautilusSearchEngineTracker *engine; - TrackerClient *tracker_client; - -+ open_libtracker (); -+ -+ if (!tracker_connect) { -+ return NULL; -+ } -+ - tracker_client = tracker_connect (FALSE); - - if (!tracker_client) { diff --git a/nautilus-2.22.0-treeview-xds-dnd-2.patch b/nautilus-2.22.0-treeview-xds-dnd-2.patch deleted file mode 100644 index 0b3fc62..0000000 --- a/nautilus-2.22.0-treeview-xds-dnd-2.patch +++ /dev/null @@ -1,227 +0,0 @@ -diff -up nautilus-2.25.1/libnautilus-private/nautilus-tree-view-drag-dest.c.orig nautilus-2.25.1/libnautilus-private/nautilus-tree-view-drag-dest.c ---- nautilus-2.25.1/libnautilus-private/nautilus-tree-view-drag-dest.c.orig 2008-10-06 11:54:32.000000000 +0200 -+++ nautilus-2.25.1/libnautilus-private/nautilus-tree-view-drag-dest.c 2008-12-04 11:35:04.174034560 +0100 -@@ -21,6 +21,7 @@ - * Boston, MA 02111-1307, USA. - * - * Author: Dave Camp -+ * XDS support: Benedikt Meurer (adapted by Amos Brocco ) - */ - - /* nautilus-tree-view-drag-dest.c: Handles drag and drop for treeviews which -@@ -33,9 +34,13 @@ - #include - #include - #include "nautilus-file-dnd.h" -+#include "nautilus-file-changes-queue.h" - #include "nautilus-icon-dnd.h" - #include "nautilus-link.h" - #include "nautilus-marshal.h" -+#include "nautilus-debug-log.h" -+#include -+#include - - #define AUTO_SCROLL_MARGIN 20 - -@@ -54,6 +59,8 @@ struct _NautilusTreeViewDragDestDetails - guint highlight_id; - guint scroll_id; - guint expand_id; -+ -+ char *direct_save_uri; - }; - - enum { -@@ -80,7 +87,8 @@ static const GtkTargetEntry drag_types [ - /* prefer "_NETSCAPE_URL" over "text/uri-list" to satisfy web browsers. */ - { NAUTILUS_ICON_DND_NETSCAPE_URL_TYPE, 0, NAUTILUS_ICON_DND_NETSCAPE_URL }, - { NAUTILUS_ICON_DND_URI_LIST_TYPE, 0, NAUTILUS_ICON_DND_URI_LIST }, -- { NAUTILUS_ICON_DND_KEYWORD_TYPE, 0, NAUTILUS_ICON_DND_KEYWORD } -+ { NAUTILUS_ICON_DND_KEYWORD_TYPE, 0, NAUTILUS_ICON_DND_KEYWORD }, -+ { NAUTILUS_ICON_DND_XDNDDIRECTSAVE_TYPE, 0, NAUTILUS_ICON_DND_XDNDDIRECTSAVE }, /* XDS Protocol Type */ - }; - - -@@ -244,6 +252,12 @@ get_drag_data (NautilusTreeViewDragDest - target = gtk_drag_dest_find_target (GTK_WIDGET (dest->details->tree_view), - context, - NULL); -+ if (target == gdk_atom_intern (NAUTILUS_ICON_DND_XDNDDIRECTSAVE_TYPE, FALSE) && -+ !dest->details->drop_occurred) { -+ dest->details->drag_type = NAUTILUS_ICON_DND_XDNDDIRECTSAVE; -+ dest->details->have_drag_data = TRUE; -+ return; -+ } - - gtk_drag_get_data (GTK_WIDGET (dest->details->tree_view), - context, target, time); -@@ -263,6 +277,9 @@ free_drag_data (NautilusTreeViewDragDest - nautilus_drag_destroy_selection_list (dest->details->drag_list); - dest->details->drag_list = NULL; - } -+ -+ g_free (dest->details->direct_save_uri); -+ dest->details->direct_save_uri = NULL; - } - - static char * -@@ -407,6 +424,7 @@ get_drop_action (NautilusTreeViewDragDes - return context->suggested_action; - - case NAUTILUS_ICON_DND_TEXT: -+ case NAUTILUS_ICON_DND_XDNDDIRECTSAVE: - return GDK_ACTION_COPY; - - case NAUTILUS_ICON_DND_KEYWORD: -@@ -717,6 +735,35 @@ receive_dropped_keyword (NautilusTreeVie - g_free (drop_target_uri); - } - -+static void -+receive_xds (NautilusTreeViewDragDest *dest, -+ GdkDragContext *context, -+ int x, int y) -+{ -+ GFile *location; -+ -+ /* Indicate that we don't provide "F" fallback */ -+ if (G_UNLIKELY (dest->details->drag_data->format == 8 -+ && dest->details->drag_data->length == 1 -+ && dest->details->drag_data->data[0] == 'F')) { -+ gdk_property_change (GDK_DRAWABLE (context->source_window), -+ gdk_atom_intern (NAUTILUS_ICON_DND_XDNDDIRECTSAVE_TYPE, FALSE), -+ gdk_atom_intern ("text/plain", FALSE), 8, -+ GDK_PROP_MODE_REPLACE, (const guchar *) "", 0); -+ } else if (G_LIKELY (dest->details->drag_data->format == 8 -+ && dest->details->drag_data->length == 1 -+ && dest->details->drag_data->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); -+ } -+} -+ -+ - static gboolean - drag_data_received_callback (GtkWidget *widget, - GdkDragContext *context, -@@ -766,6 +813,10 @@ drag_data_received_callback (GtkWidget * - receive_dropped_keyword (dest, context, x, y); - success = TRUE; - break; -+ case NAUTILUS_ICON_DND_XDNDDIRECTSAVE: -+ receive_xds (dest, context, x, y); -+ success = TRUE; -+ break; - } - - dest->details->drop_occurred = FALSE; -@@ -781,6 +832,79 @@ drag_data_received_callback (GtkWidget * - return TRUE; - } - -+static char * -+get_direct_save_filename (GdkDragContext *context) -+{ -+ guchar *prop_text; -+ gint prop_len; -+ -+ if (!gdk_property_get (context->source_window, gdk_atom_intern (NAUTILUS_ICON_DND_XDNDDIRECTSAVE_TYPE, FALSE), -+ gdk_atom_intern ("text/plain", FALSE), 0, 1024, FALSE, NULL, NULL, -+ &prop_len, &prop_text) && prop_text != NULL) { -+ return NULL; -+ } -+ -+ /* Zero-terminate the string */ -+ prop_text = g_realloc (prop_text, prop_len + 1); -+ prop_text[prop_len] = '\0'; -+ -+ /* Verify that the file name provided by the source is valid */ -+ if (*prop_text == '\0' || -+ strchr ((const gchar *) prop_text, G_DIR_SEPARATOR) != NULL) { -+ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, -+ "Invalid filename provided by XDS drag site"); -+ g_free (prop_text); -+ return NULL; -+ } -+ -+ return prop_text; -+} -+ -+static gboolean -+set_direct_save_uri (NautilusTreeViewDragDest *dest, -+ GdkDragContext *context, -+ int x, int y) -+{ -+ GFile *base, *child; -+ char *drop_uri; -+ char *filename, *uri; -+ -+ g_assert (dest->details->direct_save_uri == NULL); -+ -+ uri = NULL; -+ -+ drop_uri = get_drop_target_uri_at_pos (dest, x, y); -+ if (drop_uri != NULL) { -+ filename = get_direct_save_filename (context); -+ if (filename != NULL) { -+ /* Resolve relative path */ -+ base = g_file_new_for_uri (drop_uri); -+ child = g_file_get_child (base, filename); -+ uri = g_file_get_uri (child); -+ -+ g_object_unref (base); -+ g_object_unref (child); -+ -+ /* Change the property */ -+ gdk_property_change (GDK_DRAWABLE (context->source_window), -+ gdk_atom_intern (NAUTILUS_ICON_DND_XDNDDIRECTSAVE_TYPE, FALSE), -+ gdk_atom_intern ("text/plain", FALSE), 8, -+ GDK_PROP_MODE_REPLACE, (const guchar *) uri, -+ strlen (uri)); -+ -+ dest->details->direct_save_uri = uri; -+ } else { -+ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, -+ "Invalid filename provided by XDS drag site"); -+ } -+ } else { -+ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, -+ "Could not retrieve XDS drop destination"); -+ } -+ -+ return uri != NULL; -+} -+ - static gboolean - drag_drop_callback (GtkWidget *widget, - GdkDragContext *context, -@@ -790,8 +914,24 @@ drag_drop_callback (GtkWidget *widget, - gpointer data) - { - NautilusTreeViewDragDest *dest; -+ guint info; -+ GdkAtom target; - - dest = NAUTILUS_TREE_VIEW_DRAG_DEST (data); -+ -+ target = gtk_drag_dest_find_target (GTK_WIDGET (dest->details->tree_view), -+ context, -+ NULL); -+ if (target == GDK_NONE) { -+ return FALSE; -+ } -+ -+ info = dest->details->drag_type; -+ -+ if (info == NAUTILUS_ICON_DND_XDNDDIRECTSAVE && -+ !set_direct_save_uri (dest, context, x, y)) { -+ return FALSE; -+ } - - dest->details->drop_occurred = TRUE; - diff --git a/nautilus-2.26.1-dnd-not-recurse.patch b/nautilus-2.26.1-dnd-not-recurse.patch deleted file mode 100644 index baab8e5..0000000 --- a/nautilus-2.26.1-dnd-not-recurse.patch +++ /dev/null @@ -1,31 +0,0 @@ -Index: libnautilus-private/nautilus-dnd.c -=================================================================== ---- libnautilus-private/nautilus-dnd.c (revision 15162) -+++ libnautilus-private/nautilus-dnd.c (revision 15163) -@@ -437,7 +437,7 @@ - gboolean target_is_source_parent; - gboolean source_deletable; - const char *dropped_uri; -- GFile *target, *dropped; -+ GFile *target, *dropped, *dropped_directory; - GdkDragAction actions; - NautilusFile *dropped_file, *target_file; - -@@ -519,7 +519,16 @@ - - /* Compare the first dropped uri with the target uri for same fs match. */ - dropped = g_file_new_for_uri (dropped_uri); -- target_is_source_parent = g_file_has_prefix (dropped, target); -+ dropped_directory = g_file_get_parent (dropped); -+ target_is_source_parent = FALSE; -+ if (dropped_directory != NULL) { -+ /* If the dropped file is already in the same directory but -+ is in another filesystem we still want to move, not copy -+ as this is then just a move of a mountpoint to another -+ position in the dir */ -+ target_is_source_parent = g_file_equal (dropped_directory, target); -+ g_object_unref (dropped_directory); -+ } - source_deletable = source_is_deletable (dropped); - - if ((same_fs && source_deletable) || target_is_source_parent || diff --git a/nautilus-dupe-id.patch b/nautilus-dupe-id.patch deleted file mode 100644 index 24bcfed..0000000 --- a/nautilus-dupe-id.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up nautilus-2.27.91/src/nautilus-file-management-properties.ui.dupe-id nautilus-2.27.91/src/nautilus-file-management-properties.ui ---- nautilus-2.27.91/src/nautilus-file-management-properties.ui.dupe-id 2009-08-26 20:04:20.492274436 -0400 -+++ nautilus-2.27.91/src/nautilus-file-management-properties.ui 2009-08-26 20:04:26.611029555 -0400 -@@ -1128,7 +1128,7 @@ - - - -- -+ - 6 - True - diff --git a/nautilus-leaks.patch b/nautilus-leaks.patch deleted file mode 100644 index e05a5ab..0000000 --- a/nautilus-leaks.patch +++ /dev/null @@ -1,23 +0,0 @@ -1eaa3d102a9df49cf41fe46fc01e88f8c1382c51 -diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c -index 2c9ab69..4f9002f 100644 ---- a/libnautilus-private/nautilus-file.c -+++ b/libnautilus-private/nautilus-file.c -@@ -691,6 +691,7 @@ finalize (GObject *object) - - eel_g_list_free_deep (file->details->pending_extension_emblems); - eel_g_list_free_deep (file->details->extension_emblems); -+ eel_g_object_list_free (file->details->pending_info_providers); - - if (file->details->pending_extension_attributes) { - g_hash_table_destroy (file->details->pending_extension_attributes); -@@ -6530,6 +6531,9 @@ invalidate_thumbnail (NautilusFile *file) - void - nautilus_file_invalidate_extension_info_internal (NautilusFile *file) - { -+ if (file->details->pending_info_providers) -+ eel_g_object_list_free (file->details->pending_info_providers); -+ - file->details->pending_info_providers = - nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_INFO_PROVIDER); - } diff --git a/nautilus-menu-icons3.patch b/nautilus-menu-icons3.patch deleted file mode 100644 index 09652b5..0000000 --- a/nautilus-menu-icons3.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff -up nautilus-2.27.4/src/nautilus-spatial-window.c.menu-icons3 nautilus-2.27.4/src/nautilus-spatial-window.c ---- nautilus-2.27.4/src/nautilus-spatial-window.c.menu-icons3 2009-08-03 18:59:28.015377172 -0400 -+++ nautilus-2.27.4/src/nautilus-spatial-window.c 2009-08-03 19:08:19.623627208 -0400 -@@ -683,6 +683,7 @@ location_button_clicked_callback (GtkWid - - name = nautilus_file_get_display_name (file); - menu_item = gtk_image_menu_item_new_with_label (name); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menu_item), TRUE); - g_free (name); - - if (first_item == NULL) { -@@ -941,6 +942,14 @@ static const GtkActionEntry spatial_entr - G_CALLBACK (action_search_callback) }, - }; - -+static const char* icon_entries[] = { -+ "/MenuBar/Other Menus/Places/Home", -+ "/MenuBar/Other Menus/Places/Go to Computer", -+ "/MenuBar/Other Menus/Places/Go to Templates", -+ "/MenuBar/Other Menus/Places/Go to Trash", -+ "/MenuBar/Other Menus/Places/Go to Network" -+}; -+ - static void - nautilus_spatial_window_init (NautilusSpatialWindow *window) - { -@@ -951,6 +960,8 @@ nautilus_spatial_window_init (NautilusSp - GtkUIManager *ui_manager; - GtkTargetList *targets; - const char *ui; -+ int i; -+ GtkWidget *menuitem; - - window->details = G_TYPE_INSTANCE_GET_PRIVATE (window, - NAUTILUS_TYPE_SPATIAL_WINDOW, -@@ -1042,6 +1053,11 @@ nautilus_spatial_window_init (NautilusSp - - ui = nautilus_ui_string_get ("nautilus-spatial-window-ui.xml"); - gtk_ui_manager_add_ui_from_string (ui_manager, ui, -1, NULL); -+ -+ for (i = 0; i < G_N_ELEMENTS (icon_entries); i++) { -+ menuitem = gtk_ui_manager_get_widget (ui_manager, icon_entries[i]); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); -+ } - } - - static void diff --git a/nautilus.spec b/nautilus.spec index 83925b1..3c8c8cb 100644 --- a/nautilus.spec +++ b/nautilus.spec @@ -14,8 +14,8 @@ Name: nautilus Summary: File manager for GNOME -Version: 2.27.91 -Release: 3%{?dist} +Version: 2.27.92 +Release: 1%{?dist} License: GPLv2+ Group: User Interface/Desktops Source: http://download.gnome.org/sources/%{name}/2.27/%{name}-%{version}.tar.bz2 @@ -85,10 +85,6 @@ Patch10: nautilus-gvfs-desktop-key-2.patch # http://bugzilla.gnome.org/show_bug.cgi?id=519743 Patch17: nautilus-filetype-symlink-fix.patch -# from upstream -Patch20: nautilus-dupe-id.patch -Patch21: uninhibit-me-harder.patch - %description Nautilus is the file manager and graphical shell for the GNOME desktop that makes it easy to manage your files and the rest of your system. @@ -125,8 +121,6 @@ for developing nautilus extensions. # %patch8 -p1 -b .hide-white-screen %patch10 -p1 -b .gvfs-desktop-key %patch17 -p0 -b .symlink -%patch20 -p1 -b .dupe-id -%patch21 -p1 -b .uninhibit-me-harder %build @@ -267,6 +261,9 @@ fi %changelog +* Mon Sep 7 2009 Tomas Bzatek - 2.27.92-1 +- Update to 2.27.92 + * Sun Sep 6 2009 Matthias Clasen - 2.27.91-3 - Fix uninhibiting when long-running operations are over diff --git a/nautilus_always_open_appicon.patch b/nautilus_always_open_appicon.patch deleted file mode 100644 index d8aca9e..0000000 --- a/nautilus_always_open_appicon.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- nautilus-2.27.4.orig/src/file-manager/fm-directory-view.c 2009-07-13 21:47:03.000000000 +0200 -+++ nautilus-2.27.4/src/file-manager/fm-directory-view.c 2009-08-01 17:01:19.000000000 +0200 -@@ -105,12 +105,14 @@ - #define FM_DIRECTORY_VIEW_MENU_PATH_SCRIPTS_PLACEHOLDER "/MenuBar/File/Open Placeholder/Scripts/Scripts Placeholder" - #define FM_DIRECTORY_VIEW_MENU_PATH_EXTENSION_ACTIONS_PLACEHOLDER "/MenuBar/Edit/Extension Actions" - #define FM_DIRECTORY_VIEW_MENU_PATH_NEW_DOCUMENTS_PLACEHOLDER "/MenuBar/File/New Items Placeholder/New Documents/New Documents Placeholder" -+#define FM_DIRECTORY_VIEW_MENU_PATH_OPEN "/MenuBar/File/Open Placeholder/Open" - - #define FM_DIRECTORY_VIEW_POPUP_PATH_SELECTION "/selection" - #define FM_DIRECTORY_VIEW_POPUP_PATH_APPLICATIONS_SUBMENU_PLACEHOLDER "/selection/Open Placeholder/Open With/Applications Placeholder" - #define FM_DIRECTORY_VIEW_POPUP_PATH_APPLICATIONS_PLACEHOLDER "/selection/Open Placeholder/Applications Placeholder" - #define FM_DIRECTORY_VIEW_POPUP_PATH_SCRIPTS_PLACEHOLDER "/selection/Open Placeholder/Scripts/Scripts Placeholder" - #define FM_DIRECTORY_VIEW_POPUP_PATH_EXTENSION_ACTIONS "/selection/Extension Actions" -+#define FM_DIRECTORY_VIEW_POPUP_PATH_OPEN "/selection/Open Placeholder/Open" - - #define FM_DIRECTORY_VIEW_POPUP_PATH_BACKGROUND "/background" - #define FM_DIRECTORY_VIEW_POPUP_PATH_BACKGROUND_SCRIPTS_PLACEHOLDER "/background/Before Zoom Items/New Object Items/Scripts/Scripts Placeholder" -@@ -4258,8 +4260,10 @@ - char *label; - char *action_name; - char *escaped_app; -+ char *path; - GtkAction *action; - GIcon *app_icon; -+ GtkWidget *menuitem; - - launch_parameters = application_launch_parameters_new - (application, files, view); -@@ -4307,6 +4311,16 @@ - GTK_UI_MANAGER_MENUITEM, - FALSE); - -+ path = g_strdup_printf("%s/%s", menu_placeholder, action_name); -+ -+ menuitem = gtk_ui_manager_get_widget ( -+ nautilus_window_info_get_ui_manager (view->details->window), -+ path); -+ -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); -+ -+ g_free (path); -+ - gtk_ui_manager_add_ui (nautilus_window_info_get_ui_manager (view->details->window), - view->details->open_with_merge_id, - popup_placeholder, -@@ -4315,6 +4329,15 @@ - GTK_UI_MANAGER_MENUITEM, - FALSE); - -+ path = g_strdup_printf("%s/%s", popup_placeholder, action_name); -+ -+ menuitem = gtk_ui_manager_get_widget ( -+ nautilus_window_info_get_ui_manager (view->details->window), -+ path); -+ -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); -+ -+ g_free (path); - g_free (action_name); - g_free (label); - g_free (tip); -@@ -8339,6 +8362,7 @@ - GtkAction *action; - GAppInfo *app; - GIcon *app_icon; -+ GtkWidget *menuitem; - - selection = fm_directory_view_get_selection (view); - selection_count = g_list_length (selection); -@@ -8416,6 +8440,20 @@ - label_with_underscore ? label_with_underscore : _("_Open"), - NULL); - -+ menuitem = gtk_ui_manager_get_widget ( -+ nautilus_window_info_get_ui_manager (view->details->window), -+ FM_DIRECTORY_VIEW_MENU_PATH_OPEN); -+ -+ /* Only force displaying the icon if it is an application icon */ -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), app_icon != NULL); -+ -+ menuitem = gtk_ui_manager_get_widget ( -+ nautilus_window_info_get_ui_manager (view->details->window), -+ FM_DIRECTORY_VIEW_POPUP_PATH_OPEN); -+ -+ /* Only force displaying the icon if it is an application icon */ -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), app_icon != NULL); -+ - if (app_icon == NULL) { - app_icon = g_themed_icon_new (GTK_STOCK_OPEN); - } diff --git a/nautilus_gtk_mount_operation_signal.patch b/nautilus_gtk_mount_operation_signal.patch deleted file mode 100644 index 4b57a10..0000000 --- a/nautilus_gtk_mount_operation_signal.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: libnautilus-private/nautilus-mime-actions.c -=================================================================== ---- libnautilus-private/nautilus-mime-actions.c (revision 14785) -+++ libnautilus-private/nautilus-mime-actions.c (working copy) -@@ -1331,12 +1331,13 @@ - if (parameters->not_mounted != NULL) { - file = parameters->not_mounted->data; - mount_op = gtk_mount_operation_new (parameters->parent_window); -- g_signal_connect_object (mount_op, "notify::is-showing", -- G_CALLBACK (activate_mount_op_active), parameters, 0); -+ g_signal_connect (mount_op, "notify::is-showing", -+ G_CALLBACK (activate_mount_op_active), parameters); - location = nautilus_file_get_location (file); - g_file_mount_enclosing_volume (location, 0, mount_op, parameters->cancellable, - activation_mount_not_mounted_callback, parameters); - g_object_unref (location); -+ /* unref mount_op here - g_file_mount_enclosing_volume() does ref for itself */ - g_object_unref (mount_op); - return; - } diff --git a/nautilus_menu_icons_only2.patch b/nautilus_menu_icons_only2.patch deleted file mode 100644 index 22b46de..0000000 --- a/nautilus_menu_icons_only2.patch +++ /dev/null @@ -1,78 +0,0 @@ -Common subdirectories: nautilus-2.27.4.orig/src/file-manager and nautilus-2.27.4/src/file-manager -diff -u nautilus-2.27.4.orig/src/nautilus-navigation-window-menus.c nautilus-2.27.4/src/nautilus-navigation-window-menus.c ---- nautilus-2.27.4.orig/src/nautilus-navigation-window-menus.c 2009-06-24 16:00:12.000000000 +0200 -+++ nautilus-2.27.4/src/nautilus-navigation-window-menus.c 2009-08-03 23:58:55.000000000 +0200 -@@ -339,6 +339,15 @@ - gtk_label_set_max_width_chars (label, MENU_ITEM_MAX_WIDTH_CHARS); - } - -+static const char* icon_entries[] = { -+ "/MenuBar/Other Menus/Go/Home", -+ "/MenuBar/Other Menus/Go/Computer", -+ "/MenuBar/Other Menus/Go/Go to Templates", -+ "/MenuBar/Other Menus/Go/Go to Trash", -+ "/MenuBar/Other Menus/Go/Go to Network", -+ "/MenuBar/Other Menus/Go/Go to Location" -+}; -+ - /** - * refresh_go_menu: - * -@@ -350,7 +359,10 @@ - { - GtkUIManager *ui_manager; - GList *node; -+ GtkWidget *menuitem; - int index; -+ const char *ui; -+ int i; - - g_assert (NAUTILUS_IS_NAVIGATION_WINDOW (window)); - -@@ -371,6 +383,15 @@ - window->details->go_menu_action_group, - -1); - g_object_unref (window->details->go_menu_action_group); -+ -+ for (i = 0; i < G_N_ELEMENTS (icon_entries); i++) { -+ menuitem = gtk_ui_manager_get_widget ( -+ ui_manager, -+ icon_entries[i]); -+ -+ gtk_image_menu_item_set_always_show_image ( -+ GTK_IMAGE_MENU_ITEM (menuitem), TRUE); -+ } - - /* Add in a new set of history items. */ - for (node = nautilus_get_history_list (), index = 0; -diff -u nautilus-2.27.4.orig/src/nautilus-window-menus.c nautilus-2.27.4/src/nautilus-window-menus.c ---- nautilus-2.27.4.orig/src/nautilus-window-menus.c 2009-06-24 16:00:12.000000000 +0200 -+++ nautilus-2.27.4/src/nautilus-window-menus.c 2009-08-03 23:54:04.000000000 +0200 -@@ -162,8 +162,10 @@ - BookmarkHolder *bookmark_holder; - char action_name[128]; - char *name; -+ char *path; - GdkPixbuf *pixbuf; - GtkAction *action; -+ GtkWidget *menuitem; - - g_assert (NAUTILUS_IS_WINDOW (window)); - g_assert (NAUTILUS_IS_BOOKMARK (bookmark)); -@@ -203,7 +205,16 @@ - GTK_UI_MANAGER_MENUITEM, - FALSE); - -+ path = g_strdup_printf("%s/%s", parent_path, action_name); -+ -+ menuitem = gtk_ui_manager_get_widget ( -+ window->details->ui_manager, -+ path); -+ -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); -+ - g_object_unref (pixbuf); -+ g_free (path); - g_free (name); - } - diff --git a/nautilus_new_windows_after_mount.patch b/nautilus_new_windows_after_mount.patch deleted file mode 100644 index c1f8eff..0000000 --- a/nautilus_new_windows_after_mount.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: libnautilus-private/nautilus-mime-actions.c -=================================================================== ---- libnautilus-private/nautilus-mime-actions.c (revision 14785) -+++ libnautilus-private/nautilus-mime-actions.c (working copy) -@@ -1327,6 +1327,7 @@ - NautilusFile *file; - GFile *location; - GMountOperation *mount_op; -+ GList *l, *next; - - if (parameters->not_mounted != NULL) { - file = parameters->not_mounted->data; -@@ -1348,6 +1349,14 @@ - return; - } - -+ /* once the mount is finished, refresh all attributes */ -+ /* - fixes new windows not appearing after successful mount */ -+ for (l = parameters->files; l != NULL; l = next) { -+ file = NAUTILUS_FILE (l->data); -+ next = l->next; -+ nautilus_file_invalidate_all_attributes (file); -+ } -+ - nautilus_file_list_call_when_ready - (parameters->files, - nautilus_mime_actions_get_required_file_attributes () | NAUTILUS_FILE_ATTRIBUTE_LINK_INFO, diff --git a/small-leaks.patch b/small-leaks.patch deleted file mode 100644 index 9b30820..0000000 --- a/small-leaks.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: libnautilus-private/nautilus-directory-background.c -=================================================================== ---- libnautilus-private/nautilus-directory-background.c (revision 14544) -+++ libnautilus-private/nautilus-directory-background.c (working copy) -@@ -115,6 +115,7 @@ - if (tmp != NULL) { - if (!gdk_color_parse (tmp, color)) - gdk_color_parse ("black", color); -+ g_free (tmp); - } - else { - gdk_color_parse ("black", color); -@@ -198,6 +199,7 @@ - else { - *placement = EEL_BACKGROUND_CENTERED; - } -+ g_free (tmp); - - /* Get the color */ - tmp = gconf_client_get_string (client, BG_PREFERENCES_COLOR_SHADING_TYPE, NULL); -@@ -223,6 +225,7 @@ - use_gradient = FALSE; - is_horizontal = FALSE; - } -+ g_free (tmp); - - read_color (client, BG_PREFERENCES_PRIMARY_COLOR, &primary); - read_color (client, BG_PREFERENCES_SECONDARY_COLOR, &secondary); diff --git a/sources b/sources index d69bb57..405b8f3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a7f654d0553307e80985aceb08946224 nautilus-2.27.91.tar.bz2 +46b5677e652ec008bb9d611f402d9375 nautilus-2.27.92.tar.bz2 diff --git a/uninhibit-me-harder.patch b/uninhibit-me-harder.patch deleted file mode 100644 index 1aa034e..0000000 --- a/uninhibit-me-harder.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up nautilus-2.27.91/libnautilus-private/nautilus-file-utilities.c.release-your-inhibitions nautilus-2.27.91/libnautilus-private/nautilus-file-utilities.c ---- nautilus-2.27.91/libnautilus-private/nautilus-file-utilities.c.release-your-inhibitions 2009-09-06 21:25:01.462765511 -0400 -+++ nautilus-2.27.91/libnautilus-private/nautilus-file-utilities.c 2009-09-06 21:25:34.998778724 -0400 -@@ -1100,7 +1100,7 @@ nautilus_uninhibit_power_manager (gint c - { - DBusGProxy *proxy; - GError *error; -- g_return_if_fail (cookie < 0); -+ g_return_if_fail (cookie > 0); - - proxy = get_power_manager_proxy (); -