[SCM] mate-file-manager Debian package branch, master, updated. 1da62a557c9ef9dca4a8746bbf8732d6f6538836
Mike Gabriel
sunweaver at moszumanska.debian.org
Sat Apr 5 21:49:55 UTC 2014
Gitweb-URL: http://git.debian.org/?p=pkg-mate/caja.git;a=commitdiff;h=660f665
The following commit has been merged in the master branch:
commit 660f66539e5ef1d123dffe1a835dbe9bb8b2914c
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Sat Apr 5 22:23:04 2014 +0200
debian/patches: Pull in 0001_x-caja-desktop.patch from upstream. Fix multiply opened caja instances during session startup.
---
debian/patches/0001_x-caja-desktop.patch | 98 ++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 99 insertions(+)
diff --git a/debian/patches/0001_x-caja-desktop.patch b/debian/patches/0001_x-caja-desktop.patch
new file mode 100644
index 0000000..2d70acb
--- /dev/null
+++ b/debian/patches/0001_x-caja-desktop.patch
@@ -0,0 +1,98 @@
+Description: Possible solution for x-caja-desktop issue
+Author: Stefano Karapetsas <stefano at karapetsas.com>
+Origin: vendor, https://github.com/mate-desktop/caja/commit/4f1e756e08e61840eb9a52de4debee30006ea31e
+Abstract:
+ See https://github.com/mate-desktop/mate-session-manager/issues/19.
+
+---
+diff --git a/src/caja-application.c b/src/caja-application.c
+index 3f4282c..47c86c8 100644
+--- a/src/caja-application.c
++++ b/src/caja-application.c
+@@ -961,6 +961,15 @@ queue_accel_map_save_callback (GtkAccelMap *object, gchar *accel_path,
+ }
+ }
+
++static gboolean
++desktop_changed_callback_connect (CajaApplication *application)
++{
++ g_signal_connect_swapped (caja_preferences, "changed::" CAJA_PREFERENCES_DESKTOP_IS_HOME_DIR,
++ G_CALLBACK(desktop_location_changed_callback),
++ G_OBJECT (application));
++ return FALSE;
++}
++
+ void
+ caja_application_startup (CajaApplication *application,
+ gboolean kill_shell,
+@@ -1029,9 +1038,8 @@ caja_application_startup (CajaApplication *application,
+
+ /* Monitor the preference to have the desktop */
+ /* point to the Unix home folder */
+- g_signal_connect_swapped (caja_preferences, "changed::" CAJA_PREFERENCES_DESKTOP_IS_HOME_DIR,
+- G_CALLBACK(desktop_location_changed_callback),
+- G_OBJECT (application));
++ g_timeout_add_seconds (30, (GSourceFunc) desktop_changed_callback_connect, application);
++
+ /* Create the other windows. */
+ if (urls != NULL || !no_default_window)
+ {
+diff --git a/src/caja-window-manage-views.c b/src/caja-window-manage-views.c
+index c7918e6..616e85b 100644
+--- a/src/caja-window-manage-views.c
++++ b/src/caja-window-manage-views.c
+@@ -49,6 +49,7 @@
+ #include <eel/eel-gtk-macros.h>
+ #include <eel/eel-stock-dialogs.h>
+ #include <eel/eel-string.h>
++#include <eel/eel-vfs-extensions.h>
+ #include <gtk/gtk.h>
+ #include <gdk/gdkx.h>
+ #include <glib/gi18n.h>
+@@ -527,8 +528,10 @@ caja_window_slot_open_location_full (CajaWindowSlot *slot,
+ char *old_uri, *new_uri;
+ int new_slot_position;
+ GList *l;
+- gboolean target_navigation = FALSE, target_same = FALSE;
+- gboolean is_desktop, is_navigation;
++ gboolean target_navigation = FALSE;
++ gboolean target_same = FALSE;
++ gboolean is_desktop = FALSE;
++ gboolean is_navigation = FALSE;
+
+ window = slot->pane->window;
+
+@@ -567,7 +570,12 @@ caja_window_slot_open_location_full (CajaWindowSlot *slot,
+ * otherwise it's the same window.
+ */
+ if (is_desktop) {
+- target_navigation = TRUE;
++ new_uri = g_file_get_uri (location);
++ if (g_str_has_prefix (new_uri, EEL_DESKTOP_URI))
++ target_same = TRUE;
++ else
++ target_navigation = TRUE;
++ g_free (new_uri);
+ } else {
+ target_same = TRUE;
+ }
+@@ -676,7 +684,7 @@ caja_window_slot_open_location_full (CajaWindowSlot *slot,
+ }
+ }
+
+- if ((target_window == window && target_slot == slot &&
++ if (!(is_desktop && target_same) && (target_window == window && target_slot == slot &&
+ old_location && g_file_equal (old_location, location))) {
+
+ if (callback != NULL) {
+@@ -688,7 +696,7 @@ caja_window_slot_open_location_full (CajaWindowSlot *slot,
+ }
+
+ begin_location_change (target_slot, location, old_location, new_selection,
+- CAJA_LOCATION_CHANGE_STANDARD, 0, NULL, callback, user_data);
++ (is_desktop && target_same) ? CAJA_LOCATION_CHANGE_RELOAD : CAJA_LOCATION_CHANGE_STANDARD, 0, NULL, callback, user_data);
+
+ /* Additionally, load this in all slots that have no location, this means
+ we load both panes in e.g. a newly opened dual pane window. */
+--
+cgit
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..a0ed5db 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+0001_x-caja-desktop.patch
--
mate-file-manager Debian package
More information about the pkg-mate-commits
mailing list