Hello community,

here is the log from the commit of package nemo for openSUSE:Factory checked in 
at 2017-08-22 11:10:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nemo (Old)
 and      /work/SRC/openSUSE:Factory/.nemo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nemo"

Tue Aug 22 11:10:53 2017 rev:17 rq:518012 version:3.4.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/nemo/nemo.changes        2017-07-17 
09:13:03.431888380 +0200
+++ /work/SRC/openSUSE:Factory/.nemo.new/nemo.changes   2017-08-22 
11:11:00.924658881 +0200
@@ -1,0 +2,38 @@
+Sun Aug 20 16:09:40 UTC 2017 - [email protected]
+
+- Update to version 3.4.7:
+  * eel_g_list_str_copy: Replace contents with g_list_copy_deep.
+    May improve performance somewhat for very high volume file
+    copies (lp#1663186).
+  * nemo-main-application.c: Try to start as a service first, then
+    a client. This allows nemo to be started via dbus (which
+    requires it be run with the G_APPLICATION_IS_SERVICE flag) as
+    well as being able to connect to an already-running instance as
+    we can now.
+  * nemo-main-application.c: Re-add "no-desktop" command line
+    option. We don't use it anymore, but some programs apparently
+    hardcode nemo with this flag rather than use xdg-open or
+    mimetype activation. This allows them to continue working as
+    before.
+  * nemo-view.c: Fix "follow link to original file" action when the
+    link is on the desktop. In these cases, we need to launch a
+    directory handler and pass it the full file name (which for
+    most file managers should open the folder and select the file).
+  * nemo-query-editor.c: Use a copy of the query text to check if
+    the query is empty (or all spaces). The function g_strstrip
+    modifies the string in-place, and passing the modified query
+    text causes issues when typing multiple words (separated by
+    spaces) in the query.
+  * Configure: Disable a tracker by default.
+  * nemo-desktop-icon-grid-view.c: Store layout timestamps any
+    time the layout is changed by a user action.
+  * Desktop: Remove metadata for pseudo-files on the desktop such
+    as Computer and Home when they're removed via preferences.
+    This simulates their deletion with respect to how metadata
+    timestamps are tracked and validated.
+  * nemo-icon-view-grid-container.c: Mark the sort as dirty any
+    time a file is added or removed (this determines whether and
+    when the sort direction indicator is shown in the context menu
+    when auto-arrange is not active.
+
+-------------------------------------------------------------------

Old:
----
  nemo-3.4.6.tar.gz

New:
----
  nemo-3.4.7.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nemo.spec ++++++
--- /var/tmp/diff_new_pack.JV51VF/_old  2017-08-22 11:11:03.812252291 +0200
+++ /var/tmp/diff_new_pack.JV51VF/_new  2017-08-22 11:11:03.828250038 +0200
@@ -20,7 +20,7 @@
 %define sover   1
 %define typelib typelib-1_0-Nemo-3_0
 Name:           nemo
-Version:        3.4.6
+Version:        3.4.7
 Release:        0
 Summary:        File browser for Cinnamon
 License:        GPL-2.0+

++++++ nemo-3.4.6.tar.gz -> nemo-3.4.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/configure.ac new/nemo-3.4.7/configure.ac
--- old/nemo-3.4.6/configure.ac 2017-07-06 11:22:05.000000000 +0200
+++ new/nemo-3.4.7/configure.ac 2017-08-08 13:15:08.000000000 +0200
@@ -18,7 +18,7 @@
 m4_define(nemo_extension_current,  5)
 m4_define(nemo_extension_revision, 0)
 
-AC_INIT(nemo, 3.4.6, https://github.com/linuxmint/nemo)
+AC_INIT(nemo, 3.4.7, https://github.com/linuxmint/nemo)
 
 dnl ===========================================================================
 
@@ -183,9 +183,9 @@
 
 AC_ARG_ENABLE(tracker,
               [AS_HELP_STRING([--enable-tracker=@<:@yes/no/auto@:>@],
-                              [build Tracker builtin support [default=auto]])],
+                              [build Tracker builtin support [default=no]])],
               [enable_tracker="$enableval"],
-              [enable_tracker=auto])
+              [enable_tracker=no])
 
 build_tracker=no
 if test "x$enable_tracker" != "xno"; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/data/nemo.desktop.in.in 
new/nemo-3.4.7/data/nemo.desktop.in.in
--- old/nemo-3.4.6/data/nemo.desktop.in.in      2017-07-06 11:22:05.000000000 
+0200
+++ new/nemo-3.4.7/data/nemo.desktop.in.in      2017-08-08 13:15:08.000000000 
+0200
@@ -110,6 +110,7 @@
 Terminal=false
 Type=Application
 StartupNotify=false
+DBusActivatable=true
 Categories=GNOME;GTK;Utility;Core;
 MimeType=inode/directory;application/x-gnome-saved-search;
 Actions=open-home;open-computer;open-trash;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/debian/changelog 
new/nemo-3.4.7/debian/changelog
--- old/nemo-3.4.6/debian/changelog     2017-07-06 11:22:05.000000000 +0200
+++ new/nemo-3.4.7/debian/changelog     2017-08-08 13:15:08.000000000 +0200
@@ -1,3 +1,24 @@
+nemo (3.4.7) sonya; urgency=medium
+
+  [ brownsr ]
+  * eel_g_list_str_copy: replace contents with g_list_copy_deep May improve 
performance somewhat for very high volume file copies though I have no way to 
test with the volumes reported here 
https://bugs.launchpad.net/linuxmint/+bug/1663186
+
+  [ Michael Webster ]
+  * nemo-main-application.c: try to start as a service first, then a client.  
This allows nemo to be started via dbus (which requires it be run with the 
G_APPLICATION_IS_SERVICE flag) as well as being able to connect to an 
already-running instance as we can now.
+  * nemo-main-application.c: Re-add "no-desktop" command line option. We don't 
use it anymore, but some programs apparently hardcode nemo with this flag 
rather than use xdg-open or mimetype activation.  This allows them to continue 
working as before.
+  * nemo-view.c: Fix "follow link to original file" action when the link is on 
the desktop.  In these cases, we need to launch a folder handler and pass it 
the full file name (which for most file managers should open the folder and 
select the file.)
+  * nemo-query-editor.c: Use a copy of the query text to check if the query is 
empty (or all spaces.)  The function g_strstrip modifies the string in-place, 
and passing the modified query text causes issues when typing multiple words 
(separated by spaces) in the query.
+
+  [ leigh123linux ]
+  * Configure: disable tracker for default
+
+  [ Michael Webster ]
+  * nemo-desktop-icon-grid-view.c: Store layout timestamps any time the layout 
is changed by a user action.
+  * Desktop: Remove metadata for pseudo-files on the desktop such as Computer 
and Home when they're removed via preferences.  This simulates their deletion 
with respect to how metadata timestamps are tracked and validated.
+  * nemo-icon-view-grid-container.c: mark the sort as dirty any time a file is 
added or removed (this determines whether and when the sort direction indicator 
is shown in the context menu when auto-arrange is not active.
+
+ -- Clement Lefebvre <[email protected]>  Tue, 08 Aug 2017 13:11:47 +0200
+
 nemo (3.4.6) sonya; urgency=medium
 
   [ Michael Webster ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/eel/eel-glib-extensions.c 
new/nemo-3.4.7/eel/eel-glib-extensions.c
--- old/nemo-3.4.6/eel/eel-glib-extensions.c    2017-07-06 11:22:05.000000000 
+0200
+++ new/nemo-3.4.7/eel/eel-glib-extensions.c    2017-08-08 13:15:08.000000000 
+0200
@@ -65,14 +65,7 @@
 GList *
 eel_g_str_list_copy (GList *list)
 {
-       GList *node, *result;
-
-       result = NULL;
-       
-       for (node = g_list_last (list); node != NULL; node = node->prev) {
-               result = g_list_prepend (result, g_strdup (node->data));
-       }
-       return result;
+       return g_list_copy_deep (list, (GCopyFunc) g_strdup, NULL);
 }
 
 gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nemo-3.4.6/libnemo-private/nemo-desktop-directory-file.c 
new/nemo-3.4.7/libnemo-private/nemo-desktop-directory-file.c
--- old/nemo-3.4.6/libnemo-private/nemo-desktop-directory-file.c        
2017-07-06 11:22:05.000000000 +0200
+++ new/nemo-3.4.7/libnemo-private/nemo-desktop-directory-file.c        
2017-08-08 13:15:08.000000000 +0200
@@ -71,6 +71,20 @@
 G_DEFINE_TYPE (NemoDesktopDirectoryFile, nemo_desktop_directory_file,
               NEMO_TYPE_FILE);
 
+static gchar *
+get_indexed_key (NemoFile *file)
+{
+    NemoDesktopDirectory *desktop_directory;
+    gchar *indexed_key;
+
+    desktop_directory = NEMO_DESKTOP_DIRECTORY_FILE 
(file)->details->desktop_directory;
+
+    indexed_key = g_strdup_printf ("desktop-monitor-%d",
+                                   NEMO_DESKTOP_DIRECTORY 
(desktop_directory)->display_number);
+
+    return indexed_key;
+}
+
 static guint
 desktop_callback_hash (gconstpointer desktop_callback_as_pointer)
 {
@@ -202,6 +216,8 @@
 static void
 desktop_callback_check_done (DesktopCallback *desktop_callback)
 {
+    NemoFile *file;
+
        /* Check if we are ready. */
        if (desktop_callback->initializing ||
            desktop_callback->non_ready_files != NULL) {
@@ -210,9 +226,8 @@
 
        /* Ensure our metadata is updated before calling back */
 
-    // nemo_desktop_update_metadata_from_keyfile (NEMO_FILE 
(desktop_callback->desktop_file), "directory");
-    nemo_desktop_update_metadata_from_keyfile (NEMO_FILE 
(desktop_callback->desktop_file), "desktop-monitor-0");
-       nemo_desktop_update_metadata_from_keyfile (NEMO_FILE 
(desktop_callback->desktop_file), "desktop-monitor-1");
+    file = NEMO_FILE (desktop_callback->desktop_file);
+    nemo_desktop_update_metadata_from_keyfile (file, get_indexed_key (file));
 
        /* Remove from the hash table before sending it. */
        g_hash_table_remove (desktop_callback->desktop_file->details->callbacks,
@@ -451,20 +466,6 @@
        g_free (monitor);
 }
 
-static gchar *
-get_indexed_key (NemoFile *file)
-{
-    NemoDesktopDirectory *desktop_directory;
-    gchar *indexed_key;
-
-    desktop_directory = NEMO_DESKTOP_DIRECTORY_FILE 
(file)->details->desktop_directory;
-
-    indexed_key = g_strdup_printf ("desktop-monitor-%d",
-                                   NEMO_DESKTOP_DIRECTORY 
(desktop_directory)->display_number);
-
-    return indexed_key;
-}
-
 static void
 nemo_desktop_directory_file_set_metadata (NemoFile           *file,
                                           const char         *key,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nemo-3.4.6/libnemo-private/nemo-desktop-link-monitor.c 
new/nemo-3.4.7/libnemo-private/nemo-desktop-link-monitor.c
--- old/nemo-3.4.6/libnemo-private/nemo-desktop-link-monitor.c  2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/libnemo-private/nemo-desktop-link-monitor.c  2017-08-08 
13:15:08.000000000 +0200
@@ -24,6 +24,7 @@
 
 #include <config.h>
 #include "nemo-desktop-link-monitor.h"
+#include "nemo-desktop-metadata.h"
 #include "nemo-desktop-link.h"
 #include "nemo-desktop-icon-file.h"
 #include "nemo-directory.h"
@@ -277,6 +278,14 @@
                }
        } else {
                if (*link_ref != NULL) {
+            /* If this were a real file, removing (deleting or moving) it would
+             * also remove its metadata, though for a different reason, and
+             * unmanaged by us.  We have to simulate that when removing a fake
+             * 'desktop' file, so if it gets added again later, it behaves 
like a
+             * 'new' file.
+             */
+            nemo_desktop_clear_metadata (nemo_desktop_link_get_file 
(*link_ref));
+
                        g_object_unref (*link_ref);
                        *link_ref = NULL;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/libnemo-private/nemo-desktop-link.c 
new/nemo-3.4.7/libnemo-private/nemo-desktop-link.c
--- old/nemo-3.4.6/libnemo-private/nemo-desktop-link.c  2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/libnemo-private/nemo-desktop-link.c  2017-08-08 
13:15:08.000000000 +0200
@@ -221,6 +221,12 @@
        return link->details->type;
 }
 
+NemoFile *
+nemo_desktop_link_get_file (NemoDesktopLink *link)
+{
+    return NEMO_FILE (link->details->icon_file);
+}
+
 char *
 nemo_desktop_link_get_file_name (NemoDesktopLink *link)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/libnemo-private/nemo-desktop-link.h 
new/nemo-3.4.7/libnemo-private/nemo-desktop-link.h
--- old/nemo-3.4.6/libnemo-private/nemo-desktop-link.h  2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/libnemo-private/nemo-desktop-link.h  2017-08-08 
13:15:08.000000000 +0200
@@ -64,6 +64,7 @@
 NemoDesktopLink *   nemo_desktop_link_new                     
(NemoDesktopLinkType  type);
 NemoDesktopLink *   nemo_desktop_link_new_from_mount          (GMount          
       *mount);
 NemoDesktopLinkType nemo_desktop_link_get_link_type           (NemoDesktopLink 
    *link);
+NemoFile *          nemo_desktop_link_get_file                (NemoDesktopLink 
*link);
 char *                  nemo_desktop_link_get_file_name           
(NemoDesktopLink     *link);
 char *                  nemo_desktop_link_get_display_name        
(NemoDesktopLink     *link);
 GIcon *                 nemo_desktop_link_get_icon                
(NemoDesktopLink     *link);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/libnemo-private/nemo-desktop-metadata.c 
new/nemo-3.4.7/libnemo-private/nemo-desktop-metadata.c
--- old/nemo-3.4.6/libnemo-private/nemo-desktop-metadata.c      2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/libnemo-private/nemo-desktop-metadata.c      2017-08-08 
13:15:08.000000000 +0200
@@ -217,6 +217,18 @@
        }
 }
 
+void
+nemo_desktop_clear_metadata (NemoFile *file)
+{
+    GKeyFile *keyfile;
+
+    keyfile = get_keyfile ();
+
+    if (g_key_file_remove_group (keyfile, file->details->name, NULL)) {
+        save_in_idle (keyfile);
+    }
+}
+
 gchar *
 nemo_desktop_get_metadata_string (NemoFile *file,
                                   const gchar *name,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/libnemo-private/nemo-desktop-metadata.h 
new/nemo-3.4.7/libnemo-private/nemo-desktop-metadata.h
--- old/nemo-3.4.6/libnemo-private/nemo-desktop-metadata.h      2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/libnemo-private/nemo-desktop-metadata.h      2017-08-08 
13:15:08.000000000 +0200
@@ -40,6 +40,8 @@
                                             const char *key,
                                             const char * const *stringv);
 
+void nemo_desktop_clear_metadata       (NemoFile *file);
+
 gchar *nemo_desktop_get_metadata_string (NemoFile *file,
                                          const gchar *name,
                                          const gchar *key);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-desktop-icon-grid-view.c 
new/nemo-3.4.7/src/nemo-desktop-icon-grid-view.c
--- old/nemo-3.4.6/src/nemo-desktop-icon-grid-view.c    2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/src/nemo-desktop-icon-grid-view.c    2017-08-08 
13:15:08.000000000 +0200
@@ -726,6 +726,8 @@
     nemo_icon_view_set_directory_keep_aligned (NEMO_ICON_VIEW (view), file, 
keep_aligned);
 
     nemo_icon_container_set_keep_aligned (get_icon_container (view), 
keep_aligned);
+
+    nemo_icon_container_store_layout_timestamps_now (get_icon_container 
(view));
 }
 
 static void
@@ -750,6 +752,8 @@
     if (new == TRUE) {
         nemo_icon_container_set_keep_aligned (get_icon_container (view), TRUE);
     }
+
+    nemo_icon_container_store_layout_timestamps_now (get_icon_container 
(view));
 }
 
 static void
@@ -791,6 +795,9 @@
                 nemo_file_list_free (selection);
 
                 nemo_view_update_menus (NEMO_VIEW (view));
+
+                nemo_icon_container_store_layout_timestamps_now 
(get_icon_container (view));
+
                 return;
             }
         }
@@ -804,6 +811,8 @@
     nemo_icon_view_set_sort_criterion_by_sort_type (NEMO_ICON_VIEW (view), 
type);
 
     nemo_view_update_menus (NEMO_VIEW (view));
+
+    nemo_icon_container_store_layout_timestamps_now (get_icon_container 
(view));
 }
 
 static void
@@ -872,6 +881,8 @@
     nemo_icon_view_set_directory_horizontal_layout (NEMO_ICON_VIEW (view), 
file, horizontal);
 
     nemo_view_update_menus (NEMO_VIEW (view));
+
+    nemo_icon_container_store_layout_timestamps_now (get_icon_container 
(view));
 }
 
 static void
@@ -923,6 +934,8 @@
     nemo_icon_container_redo_layout (container);
 
     nemo_view_update_menus (NEMO_VIEW (view));
+
+    nemo_icon_container_store_layout_timestamps_now (get_icon_container 
(view));
 }
 
 static void
@@ -949,6 +962,8 @@
     nemo_icon_container_redo_layout (container);
 
     nemo_view_update_menus (NEMO_VIEW (view));
+
+    nemo_icon_container_store_layout_timestamps_now (get_icon_container 
(view));
 }
 
 static gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-icon-view-grid-container.c 
new/nemo-3.4.7/src/nemo-icon-view-grid-container.c
--- old/nemo-3.4.6/src/nemo-icon-view-grid-container.c  2017-07-06 
11:22:05.000000000 +0200
+++ new/nemo-3.4.7/src/nemo-icon-view-grid-container.c  2017-08-08 
13:15:08.000000000 +0200
@@ -1163,7 +1163,6 @@
 
     if (semi_position_icons != NULL) {
         NemoCenteredPlacementGrid *grid;
-        gboolean dummy;
 
         g_assert (!container->details->auto_layout);
 
@@ -1617,6 +1616,22 @@
     nemo_icon_container_request_update_all (container);
 }
 
+static void
+nemo_icon_view_grid_container_icon_added (NemoIconViewGridContainer *container,
+                                          NemoIconData              *icon_data,
+                                          gpointer                   data)
+{
+    container->manual_sort_dirty = TRUE;
+}
+
+static void
+nemo_icon_view_grid_container_icon_removed (NemoIconViewGridContainer 
*container,
+                                            NemoIconData              
*icon_data,
+                                            gpointer                   data)
+{
+    container->manual_sort_dirty = TRUE;
+}
+
 NemoIconContainer *
 nemo_icon_view_grid_container_construct (NemoIconViewGridContainer 
*icon_container,
                                          NemoIconView              *view,
@@ -1717,6 +1732,14 @@
     ic_class->icon_get_bounding_box = 
nemo_icon_view_grid_container_icon_get_bounding_box;
     ic_class->set_zoom_level = nemo_icon_view_grid_container_set_zoom_level;
 
+    g_signal_override_class_handler ("icon_added",
+                                     NEMO_TYPE_ICON_VIEW_GRID_CONTAINER,
+                                     G_CALLBACK 
(nemo_icon_view_grid_container_icon_added));
+
+    g_signal_override_class_handler ("icon_removed",
+                                     NEMO_TYPE_ICON_VIEW_GRID_CONTAINER,
+                                     G_CALLBACK 
(nemo_icon_view_grid_container_icon_removed));
+
     EEL_CANVAS_CLASS (klass)->draw_background = 
nemo_icon_view_grid_container_draw_background;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-main-application.c 
new/nemo-3.4.7/src/nemo-main-application.c
--- old/nemo-3.4.6/src/nemo-main-application.c  2017-07-06 11:22:05.000000000 
+0200
+++ new/nemo-3.4.7/src/nemo-main-application.c  2017-08-08 13:15:08.000000000 
+0200
@@ -490,8 +490,10 @@
        gboolean browser = FALSE;
        gboolean kill_shell = FALSE;
        gboolean no_default_window = FALSE;
+    gboolean no_desktop_ignored = FALSE;
        gboolean fix_cache = FALSE;
        gchar **remaining = NULL;
+    GApplicationFlags init_flags;
        NemoMainApplication *self = NEMO_MAIN_APPLICATION (application);
 
        const GOptionEntry options[] = {
@@ -508,6 +510,8 @@
                  N_("Create the initial window with the given geometry."), 
N_("GEOMETRY") },
                { "no-default-window", 'n', 0, G_OPTION_ARG_NONE, 
&no_default_window,
                  N_("Only create windows for explicitly specified URIs."), 
NULL },
+        { "no-desktop", '\0', 0, G_OPTION_ARG_NONE, &no_desktop_ignored,
+          N_("Ignored - left for compatibility only."), NULL },
                { "fix-cache", '\0', 0, G_OPTION_ARG_NONE, &fix_cache,
                  N_("Repair the user thumbnail cache - this can be useful if 
you're having trouble with file thumbnails.  Must be run as root"), NULL },
                { "quit", 'q', 0, G_OPTION_ARG_NONE, &kill_shell, 
@@ -569,15 +573,34 @@
               "self checks %d",
               no_default_window, kill_shell, perform_self_check);
 
-       g_application_register (application, NULL, &error);
+    /* Keep our original flags handy */
+    init_flags = g_application_get_flags (application);
+
+    /* First try to register as a service (this allows our dbus activation to 
succeed
+     * if we're not already running */
+    g_application_set_flags (application, init_flags | 
G_APPLICATION_IS_SERVICE);
+    g_application_register (application, NULL, &error);
 
        if (error != NULL) {
-               g_printerr ("Could not register the application: %s\n", 
error->message);
-               g_error_free (error);
+        g_debug ("Could not register nemo as a service, trying as a remote: 
%s", error->message);
+        g_clear_error (&error);
+    } else {
+        goto post_registration;
+    }
 
-               *exit_status = EXIT_FAILURE;
-               goto out;
-       }
+    /* If service registration failed, try to connect to the existing instance 
*/
+    g_application_set_flags (application, init_flags | 
G_APPLICATION_IS_LAUNCHER);
+    g_application_register (application, NULL, &error);
+
+    if (error != NULL) {
+        g_printerr ("Could not register nemo as a remote: %s\n", 
error->message);
+        g_clear_error (&error);
+
+        *exit_status = EXIT_FAILURE;
+        goto out;
+    }
+
+post_registration:
 
        if (kill_shell) {
                DEBUG ("Killing application, as requested");
@@ -764,7 +787,7 @@
     return nemo_application_initialize_singleton (NEMO_TYPE_MAIN_APPLICATION,
                                                   "application-id", "org.Nemo",
                                                   "flags", 
G_APPLICATION_HANDLES_OPEN,
-                                                  "inactivity-timeout", 12000,
+                                                  "inactivity-timeout", 30 * 
1000, // seconds
                                                   "register-session", TRUE,
                                                   NULL);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-mime-actions.c 
new/nemo-3.4.7/src/nemo-mime-actions.c
--- old/nemo-3.4.6/src/nemo-mime-actions.c      2017-07-06 11:22:05.000000000 
+0200
+++ new/nemo-3.4.7/src/nemo-mime-actions.c      2017-08-08 13:15:08.000000000 
+0200
@@ -1403,6 +1403,7 @@
        launch_desktop_files = NULL;
        launch_files = NULL;
        launch_in_terminal_files = NULL;
+    launch_location_is_desktop = FALSE;
        open_in_app_uris = NULL;
        open_in_view_files = NULL;
 
@@ -2151,3 +2152,18 @@
        nemo_mime_activate_files (parent_window, slot, files, launch_directory, 
flags, FALSE);
        g_list_free (files);
 }
+
+void
+nemo_mime_launch_fm_and_select_file (GFile *file)
+{
+    GAppInfo *info;
+    GList *list;
+
+    info = g_app_info_get_default_for_type ("inode/directory", 
!g_file_is_native (file));
+
+    list = g_list_prepend (NULL, file);
+
+    g_app_info_launch (info, list, NULL, NULL);
+
+    g_list_free (list);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-mime-actions.h 
new/nemo-3.4.7/src/nemo-mime-actions.h
--- old/nemo-3.4.6/src/nemo-mime-actions.h      2017-07-06 11:22:05.000000000 
+0200
+++ new/nemo-3.4.7/src/nemo-mime-actions.h      2017-08-08 13:15:08.000000000 
+0200
@@ -52,6 +52,6 @@
                                                                           
NemoFile            *file,
                                                                           
const char              *launch_directory,
                                                                           
NemoWindowOpenFlags  flags);
-
+void                   nemo_mime_launch_fm_and_select_file            (GFile 
*file);
 
 #endif /* NEMO_MIME_ACTIONS_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-query-editor.c 
new/nemo-3.4.7/src/nemo-query-editor.c
--- old/nemo-3.4.6/src/nemo-query-editor.c      2017-07-06 11:22:05.000000000 
+0200
+++ new/nemo-3.4.7/src/nemo-query-editor.c      2017-08-08 13:15:08.000000000 
+0200
@@ -1119,6 +1119,7 @@
 nemo_query_editor_get_query (NemoQueryEditor *editor)
 {
        const char *query_text;
+    gchar *cmp;
        NemoQuery *query;
        GList *l;
        NemoQueryEditorRow *row;
@@ -1129,10 +1130,16 @@
 
        query_text = gtk_entry_get_text (GTK_ENTRY (editor->details->entry));
 
-    if (g_strcmp0 (g_strstrip (query_text), "") == 0) {
+    cmp = g_strdup (query_text);
+    g_strstrip (cmp);
+
+    if (g_strcmp0 (cmp, "") == 0) {
+        g_free (cmp);
         return NULL;
     }
 
+    g_free (cmp);
+
        query = nemo_query_new ();
        nemo_query_set_text (query, query_text);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.4.6/src/nemo-view.c 
new/nemo-3.4.7/src/nemo-view.c
--- old/nemo-3.4.6/src/nemo-view.c      2017-07-06 11:22:05.000000000 +0200
+++ new/nemo-3.4.7/src/nemo-view.c      2017-08-08 13:15:08.000000000 +0200
@@ -7193,7 +7193,11 @@
             l = g_list_append (l, nemo_file_get_existing (location));
             nemo_view_set_selection (view, l);
         } else {
-            nemo_window_slot_open_location (view->details->slot, location, 0);
+            if (get_is_desktop_view (view)) {
+                nemo_mime_launch_fm_and_select_file (location);
+            } else {
+                nemo_window_slot_open_location (view->details->slot, location, 
0);
+            }
         }
 
         g_free (uri);
@@ -7202,6 +7206,7 @@
         g_object_unref (parent);
         g_object_unref (current);
     }
+
     nemo_file_list_free (selection);
 }
 


Reply via email to