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); }
