diff options
Diffstat (limited to 'gnome-base/nautilus/files/nautilus-3.14.2-active-slot.patch')
-rw-r--r-- | gnome-base/nautilus/files/nautilus-3.14.2-active-slot.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gnome-base/nautilus/files/nautilus-3.14.2-active-slot.patch b/gnome-base/nautilus/files/nautilus-3.14.2-active-slot.patch new file mode 100644 index 00000000..b1941996 --- /dev/null +++ b/gnome-base/nautilus/files/nautilus-3.14.2-active-slot.patch @@ -0,0 +1,51 @@ +From c9f259ca8f5541ac879320b5d168ae7b4bc46d86 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nelson=20Ben=C3=ADtez=20Le=C3=B3n?= + <nbenitezl+gnome@gmail.com> +Date: Sat, 27 Dec 2014 00:27:36 +0500 +Subject: nautilus-window: make sure active slot is closed last + +When destroying window and closing all slots, the closing +of the active slot will trigger activation of next free slot, +we don't want to be activating slots as part of +'closing all slots' logic. + +Fixes bug 741952 + +diff --git a/src/nautilus-window.c b/src/nautilus-window.c +index 124fc57..38dea35 100644 +--- a/src/nautilus-window.c ++++ b/src/nautilus-window.c +@@ -1531,6 +1531,18 @@ nautilus_window_get_property (GObject *object, + } + } + ++static gint ++sort_slots_active_last (NautilusWindowSlot *a, NautilusWindowSlot *b, NautilusWindow *window) ++{ ++ if (window->details->active_slot == a) { ++ return 1; ++ } ++ if (window->details->active_slot == b) { ++ return -1; ++ } ++ return 0; ++} ++ + static void + destroy_slots_foreach (gpointer data, + gpointer user_data) +@@ -1557,6 +1569,11 @@ nautilus_window_destroy (GtkWidget *object) + + /* close all slots safely */ + slots_copy = g_list_copy (window->details->slots); ++ if (window->details->active_slot != NULL) { ++ /* Make sure active slot is last one to be closed, to avoid default activation ++ * of others slots when closing the active one, see bug #741952 */ ++ slots_copy = g_list_sort_with_data (slots_copy, (GCompareFunc) sort_slots_active_last, window); ++ } + g_list_foreach (slots_copy, (GFunc) destroy_slots_foreach, window); + g_list_free (slots_copy); + +-- +cgit v0.10.1 + |