Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nemo for openSUSE:Factory checked in at 2021-03-06 21:18:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nemo (Old) and /work/SRC/openSUSE:Factory/.nemo.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nemo" Sat Mar 6 21:18:48 2021 rev:40 rq:877258 version:4.8.5 Changes: -------- --- /work/SRC/openSUSE:Factory/nemo/nemo.changes 2021-01-21 21:57:35.341862065 +0100 +++ /work/SRC/openSUSE:Factory/.nemo.new.2378/nemo.changes 2021-03-06 21:18:50.573249050 +0100 @@ -1,0 +2,26 @@ +Fri Mar 5 15:05:38 UTC 2021 - Aaron Stern <ukbeas...@protonmail.com> + +- Update to version 4.8.5. + * nemo-file-operations.c: re-add favorite removal during a delete operation. + * nemo-view.c: Hide favorites and pinning menu items when in the trash folder. + * nemo-view.c: Don't allow trash/delete to work inside the favorites view. + * nemo-view.c: Don't show favorite/pinning items in menubar->edit when there is no selection. + * nemo-file-operations.c: When trashing (not deleting) a folder, check favorites and remove any descendents of the toplevel. + * nemo-file-operations.c: Update favorites when moving files from their real location. + * nemo-file.c: Don't try to set metadata on a null file when adding or removing favorites. + * Fix desktop bold fonts + * nemo-icon-canvas-item.c: restore the style context after drawing any caption text. + * nemo-list-view.c: Fix NemoFile leaks. + * nemo-properties-window.c: Fix leak. nemo-directory-async.c: remove extra g_object_unref. + * nemo-file: Add a convenience macro to print file uris. + * nemo-view.c: Fix leak when generating extension menu items, nemo- menu.c: Free list of menu items during finalize, not just the list itself. + * nemo-places-sidebar.c: Use a safer function to check for favorite and recent support. + * nemo-file-operations.c: Fix #2075 + * nemo-list-view.c: Only allow double-clicks with the primary and middle buttons + * Fixes #2239. The value for customizing the desktop layout for Sort items was not being saved. + * nemo-directory-async.c: Fix favorite check callback arguments, remove unnecessary g_free(). + * Issue 1908: Sets correct values for x and y for file->details->cached_position. + * Issue 2666. Blocks emoji chooser from breaking Nemo + * Issue 591. Increases emit time of change for progress update. + +------------------------------------------------------------------- Old: ---- nemo-4.8.4.tar.gz New: ---- nemo-4.8.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nemo.spec ++++++ --- /var/tmp/diff_new_pack.DK8B4A/_old 2021-03-06 21:18:51.177249669 +0100 +++ /var/tmp/diff_new_pack.DK8B4A/_new 2021-03-06 21:18:51.177249669 +0100 @@ -20,7 +20,7 @@ %define sover 1 %define typelib typelib-1_0-Nemo-3_0 Name: nemo -Version: 4.8.4 +Version: 4.8.5 Release: 0 Summary: File browser for Cinnamon License: GPL-2.0-or-later ++++++ nemo-4.8.4.tar.gz -> nemo-4.8.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/debian/changelog new/nemo-4.8.5/debian/changelog --- old/nemo-4.8.4/debian/changelog 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/debian/changelog 2021-02-26 12:38:31.000000000 +0100 @@ -1,3 +1,44 @@ +nemo (4.8.5) ulyssa; urgency=medium + + [ Michael Webster ] + * nemo-file-operations.c: re-add favorite removal during a delete operation. + * nemo-view.c: Hide favorites and pinning menu items when in the trash folder. + * nemo-view.c: Don't allow trash/delete to work inside the favorites view. + * nemo-view.c: Don't show favorite/pinning items in menubar->edit when there is no selection. + * nemo-file-operations.c: When trashing (not deleting) a folder, check favorites and remove any descendents of the toplevel. + * nemo-file-operations.c: Update favorites when moving files from their real location. + * nemo-file.c: Don't try to set metadata on a null file when adding or removing favorites. + + [ Leigh Scott ] + * Fix desktop bold fonts + + [ Michael Webster ] + * nemo-icon-canvas-item.c: restore the style context after drawing any caption text. + * nemo-list-view.c: Fix NemoFile leaks. + * nemo-properties-window.c: Fix leak. nemo-directory-async.c: remove extra g_object_unref. + * nemo-file: Add a convenience macro to print file uris. + * nemo-view.c: Fix leak when generating extension menu items, nemo- menu.c: Free list of menu items during finalize, not just the list itself. + * nemo-places-sidebar.c: Use a safer function to check for favorite and recent support. + + [ Lars Mueller ] + * nemo-file-operations.c: Fix #2075 + + [ Michael Webster ] + * nemo-list-view.c: Only allow double-clicks with the primary and middle buttons. + + [ icarter09 ] + * Fixes #2239. The value for customizing the desktop layout for Sort items was not being saved. + + [ Michael Webster ] + * nemo-directory-async.c: Fix favorite check callback arguments, remove unnecessary g_free(). + + [ icarter09 ] + * Issue 1908: Sets correct values for x and y for file->details->cached_position. + * Issue 2666. Blocks emoji chooser from breaking Nemo + * Issue 591. Increases emit time of change for progress update. + + -- Clement Lefebvre <r...@linuxmint.com> Fri, 26 Feb 2021 11:37:53 +0000 + nemo (4.8.4) ulyssa; urgency=medium [ Michael Webster ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-extension/nemo-menu.c new/nemo-4.8.5/libnemo-extension/nemo-menu.c --- old/nemo-4.8.4/libnemo-extension/nemo-menu.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-extension/nemo-menu.c 2021-02-26 12:38:31.000000000 +0100 @@ -100,7 +100,7 @@ NemoMenu *menu = NEMO_MENU (object); if (menu->priv->item_list) { - g_list_free (menu->priv->item_list); + nemo_menu_item_list_free (menu->priv->item_list); } G_OBJECT_CLASS (nemo_menu_parent_class)->finalize (object); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-private/nemo-directory-async.c new/nemo-4.8.5/libnemo-private/nemo-directory-async.c --- old/nemo-4.8.4/libnemo-private/nemo-directory-async.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-private/nemo-directory-async.c 2021-02-26 12:38:31.000000000 +0100 @@ -3436,9 +3436,7 @@ } static gboolean -favorite_check_callback (GObject *source_object, - GAsyncResult *res, - gpointer user_data) +favorite_check_callback (gpointer user_data) { NemoDirectory *directory; NemoFile *favorite_check_file; @@ -3447,8 +3445,9 @@ state = user_data; if (state->directory == NULL) { - /* Operation was cancelled. Bail out */ - g_free (state); + /* This should never run, favorite_check_cancel removes the idle timer and frees + * the state. */ + g_warn_if_reached (); return G_SOURCE_REMOVE; } @@ -3809,7 +3808,6 @@ file->details->thumbnail_throttle_count = 1; } else { g_free (file->details->thumbnail_path); - g_object_unref (pixbuf); file->details->thumbnail_path = NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-private/nemo-file-operations.c new/nemo-4.8.5/libnemo-private/nemo-file-operations.c --- old/nemo-4.8.4/libnemo-private/nemo-file-operations.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-private/nemo-file-operations.c 2021-02-26 12:38:31.000000000 +0100 @@ -1876,7 +1876,9 @@ g_error_free (error); } else { gchar *uri = g_file_get_uri (dir); - xapp_favorites_remove (xapp_favorites_get_default (), uri); + if (!eel_uri_is_favorite (uri)) { + xapp_favorites_remove (xapp_favorites_get_default (), uri); + } g_free (uri); nemo_file_changes_queue_file_removed (dir); @@ -1909,6 +1911,16 @@ error = NULL; if (file_delete_wrapper (file, job->cancellable, &error)) { + gchar *uri = g_file_get_uri (file); + // We need to remove from favorites explicitly only if we're deleting the file + // in its native location, otherwise FavoriteVfsFile->file_delete will have + // already removed it. This is the same with delete_dir and trash_file + if (!eel_uri_is_favorite (uri)) { + xapp_favorites_remove (xapp_favorites_get_default (), uri); + } + + g_free (uri); + nemo_file_changes_queue_file_removed (file); transfer_info->num_files ++; @@ -2099,12 +2111,42 @@ g_error_free (error); total_files--; } else { - nemo_file_changes_queue_file_removed (file); - gchar *uri = g_file_get_uri (file); - xapp_favorites_remove (xapp_favorites_get_default (), uri); + if (!eel_uri_is_favorite (uri)) { + XAppFavorites *favorites = xapp_favorites_get_default (); + xapp_favorites_remove (favorites, uri); + + // move-to-trash doesn't recurse, it just trashes the toplevel, and + // the recent backend (gvfs) takes care of the rest. If we trash a folder + // that was a favorite, which also had favorites that descended from it, + // we need to explicitly remove them, or we'll have dangling entries in the + // favorites list. + + GList *to_remove, *infos, *iter; + + infos = xapp_favorites_get_favorites (favorites, NULL); + to_remove = NULL; + + for (iter = infos; iter != NULL; iter = iter->next) { + XAppFavoriteInfo *info = (XAppFavoriteInfo *) iter->data; + + if (info->uri && g_str_has_prefix (info->uri, uri)) { + to_remove = g_list_prepend (to_remove, g_strdup (info->uri)); + } + } + + g_list_free_full (infos, (GDestroyNotify) xapp_favorite_info_free); + + for (iter = to_remove; iter != NULL; iter = iter->next) { + xapp_favorites_remove (favorites, (const gchar *) iter->data); + } + + g_list_free_full (to_remove, g_free); + } g_free (uri); + nemo_file_changes_queue_file_removed (file); + if (job->undo_info != NULL) { nemo_file_undo_info_trash_add_file (NEMO_FILE_UNDO_INFO_TRASH (job->undo_info), file); } @@ -3132,7 +3174,7 @@ free_size = g_file_info_get_attribute_uint64 (fsinfo, G_FILE_ATTRIBUTE_FILESYSTEM_FREE); - if (free_size < abs(required_size)) { + if (free_size < required_size) { size_difference = required_size - free_size; primary = f (_("Error while copying to \"%B\"."), dest); secondary = f (_("There is not enough space on the destination. Try to remove files to make space.")); @@ -4508,6 +4550,15 @@ } if (copy_job->is_move) { + gchar *src_uri = g_file_get_uri (src); + gchar *dest_uri = g_file_get_uri (dest); + + if (!eel_uri_is_favorite (src_uri)) { + xapp_favorites_rename (xapp_favorites_get_default (), src_uri, dest_uri); + } + + g_free (src_uri); + g_free (dest_uri); nemo_file_changes_queue_file_moved (src, dest); } else { nemo_file_changes_queue_file_added (dest); @@ -5161,6 +5212,16 @@ g_hash_table_replace (debuting_files, g_object_ref (dest), GINT_TO_POINTER (TRUE)); } + gchar *src_uri = g_file_get_uri (src); + gchar *dest_uri = g_file_get_uri (dest); + + if (!eel_uri_is_favorite (src_uri)) { + xapp_favorites_rename (xapp_favorites_get_default (), src_uri, dest_uri); + } + + g_free (src_uri); + g_free (dest_uri); + nemo_file_changes_queue_file_moved (src, dest); if (target_is_desktop && position) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-private/nemo-file.c new/nemo-4.8.5/libnemo-private/nemo-file.c --- old/nemo-4.8.4/libnemo-private/nemo-file.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-private/nemo-file.c 2021-02-26 12:38:31.000000000 +0100 @@ -798,6 +798,10 @@ file = NEMO_FILE (object); +#ifdef NEMO_FILE_DEBUG_REF + NEMO_FILE_URI ("finalize: ", file); +#endif + g_assert (file->details->operations_in_progress == NULL); if (file->details->is_thumbnailing) { @@ -4680,7 +4684,9 @@ real_file = nemo_file_ref (file); } - nemo_file_set_boolean_metadata (real_file, NEMO_METADATA_KEY_FAVORITE, FALSE, favorite); + if (real_file != NULL) { + nemo_file_set_boolean_metadata (real_file, NEMO_METADATA_KEY_FAVORITE, FALSE, favorite); + } if (favorite) { @@ -8060,8 +8066,8 @@ point->y = -1; } - file->details->cached_position_x = x; - file->details->cached_position_y = y; + file->details->cached_position_x = point->x; + file->details->cached_position_y = point->y; } else { point->x = file->details->cached_position_x; point->y = file->details->cached_position_y; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-private/nemo-file.h new/nemo-4.8.5/libnemo-private/nemo-file.h --- old/nemo-4.8.4/libnemo-private/nemo-file.h 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-private/nemo-file.h 2021-02-26 12:38:31.000000000 +0100 @@ -627,4 +627,11 @@ void (* poll_for_media) (NemoFile *file); } NemoFileClass; +#define NEMO_FILE_URI(msg,f) \ + { \ + gchar *uri = nemo_file_get_uri (NEMO_FILE (f)); \ + g_message ("%s: %p - %s", msg, f, uri); \ + g_free (uri); \ + } \ + #endif /* NEMO_FILE_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-private/nemo-icon-canvas-item.c new/nemo-4.8.5/libnemo-private/nemo-icon-canvas-item.c --- old/nemo-4.8.4/libnemo-private/nemo-icon-canvas-item.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-private/nemo-icon-canvas-item.c 2021-02-26 12:38:31.000000000 +0100 @@ -1143,6 +1143,7 @@ gtk_render_layout (context, cr, x, text_rect.y0 + details->editable_text_height + LABEL_LINE_SPACING + TEXT_TOP_GAP, additional_layout); + gtk_style_context_restore (context); } if (item->details->is_highlighted_as_keyboard_focus) { @@ -1483,9 +1484,6 @@ if (item->details->is_pinned) { pango_font_description_set_weight (desc, PINNED_TEXT_WEIGHT); } - else { - pango_font_description_set_weight (desc, NORMAL_TEXT_WEIGHT); - } pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/libnemo-private/nemo-progress-info.c new/nemo-4.8.5/libnemo-private/nemo-progress-info.c --- old/nemo-4.8.4/libnemo-private/nemo-progress-info.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/libnemo-private/nemo-progress-info.c 2021-02-26 12:38:31.000000000 +0100 @@ -636,7 +636,7 @@ G_LOCK (progress_info); if (info->activity_mode || /* emit on switch from activity mode */ - fabs (current_percent - info->progress) > 0.005 /* Emit on change of 0.5 percent */ + fabs (current_percent - info->progress) > 0 ) { info->activity_mode = FALSE; info->progress = current_percent; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/meson.build new/nemo-4.8.5/meson.build --- old/nemo-4.8.4/meson.build 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/meson.build 2021-02-26 12:38:31.000000000 +0100 @@ -1,7 +1,7 @@ # Meson build file # https://github.com/linuxmint/nemo -project('nemo', 'c', version: '4.8.4', +project('nemo', 'c', version: '4.8.5', meson_version: '>=0.41.0' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/src/nemo-desktop-overlay.c new/nemo-4.8.5/src/nemo-desktop-overlay.c --- old/nemo-4.8.4/src/nemo-desktop-overlay.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/src/nemo-desktop-overlay.c 2021-02-26 12:38:31.000000000 +0100 @@ -194,7 +194,7 @@ gtk_combo_box_set_active_id (GTK_COMBO_BOX (priv->direction_combo), combo_id); /* Sort type */ - action = gtk_action_group_get_action (priv->action_group, "Vertical Layout"); + action = gtk_action_group_get_action (priv->action_group, "Desktop Sort by Name"); active_id = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action)); switch (active_id) { @@ -620,4 +620,4 @@ { g_return_if_fail (NEMO_IS_DESKTOP_OVERLAY (overlay)); show_overlay (overlay, overlay->priv->monitor); -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/src/nemo-list-view.c new/nemo-4.8.5/src/nemo-list-view.c --- old/nemo-4.8.4/src/nemo-list-view.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/src/nemo-list-view.c 2021-02-26 12:38:31.000000000 +0100 @@ -732,6 +732,8 @@ ret = TRUE; } + + nemo_file_unref (file); } } gtk_tree_path_free (path); @@ -982,13 +984,17 @@ return FALSE; } + if (event->button == GDK_BUTTON_SECONDARY) { + return FALSE; + } + if (clicked_within_double_click_interval (view) && view->details->double_click_path[1] && gtk_tree_path_compare (view->details->double_click_path[0], view->details->double_click_path[1]) == 0 && !on_expander) { /* NOTE: Activation can actually destroy the view if we're switching */ if (!button_event_modifies_selection (event)) { - if ((event->button == 1 || event->button == 3)) { + if (event->button == 1) { activate_selected_items (view); } else if (event->button == 2) { activate_selected_items_alternate (view, NULL, TRUE); @@ -2257,6 +2263,8 @@ nemo_file_invalidate_attributes (file, NEMO_FILE_DEFERRED_ATTRIBUTES); } } + + nemo_file_unref (file); } cy -= stepdown; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/src/nemo-places-sidebar.c new/nemo-4.8.5/src/nemo-places-sidebar.c --- old/nemo-4.8.4/src/nemo-places-sidebar.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/src/nemo-places-sidebar.c 2021-02-26 12:38:31.000000000 +0100 @@ -666,29 +666,21 @@ return res; } -static void -recent_and_favorites_supported (gboolean *recent, - gboolean *favorites) +static gboolean +vfs_supports_uri_scheme (const gchar *scheme) { - gboolean recent_setting; - recent_setting = FALSE; - *recent = *favorites = FALSE; + const gchar * const *supported; + gint i; - recent_setting = g_settings_get_boolean (cinnamon_privacy_preferences, - NEMO_PREFERENCES_RECENT_ENABLED); + supported = g_vfs_get_supported_uri_schemes (g_vfs_get_default ()); - const char * const *supported; - int i; + for (i = 0; supported[i] != NULL; i++) { + if (g_strcmp0 (scheme, supported[i]) == 0) { + return TRUE; + } + } - supported = g_vfs_get_supported_uri_schemes (g_vfs_get_default ()); - for (i = 0; supported[i] != NULL; i++) { - if (strcmp ("recent", supported[i]) == 0 && recent_setting) { - *recent = TRUE; - } - if (strcmp ("favorites", supported[i]) == 0) { - *favorites = TRUE; - } - } + return FALSE; } static gchar * @@ -831,10 +823,7 @@ g_free (tooltip); } - gboolean show_recent, show_favorites; - recent_and_favorites_supported (&show_recent, &show_favorites); - - if (show_favorites) { + if (vfs_supports_uri_scheme ("favorites")) { gint n = xapp_favorites_get_n_favorites (xapp_favorites_get_default ()); if (n > 0) { @@ -848,7 +837,11 @@ } } - if (show_recent) { + gboolean recent_enabled; + recent_enabled = g_settings_get_boolean (cinnamon_privacy_preferences, + NEMO_PREFERENCES_RECENT_ENABLED); + + if (recent_enabled && vfs_supports_uri_scheme ("recent")) { mount_uri = (char *)"recent:///"; /* No need to strdup */ icon = NEMO_ICON_SYMBOLIC_FOLDER_RECENT; cat_iter = add_place (sidebar, PLACES_BUILT_IN, @@ -878,7 +871,7 @@ cat_iter); g_free (tooltip); - if (!show_recent) + if (!recent_enabled) sidebar->bottom_bookend_uri = g_strdup (mount_uri); mount_uri = (char *)"trash:///"; /* No need to strdup */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/src/nemo-properties-window.c new/nemo-4.8.5/src/nemo-properties-window.c --- old/nemo-4.8.4/src/nemo-properties-window.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/src/nemo-properties-window.c 2021-02-26 12:38:31.000000000 +0100 @@ -4783,6 +4783,7 @@ } vbox = nemo_mime_application_chooser_new (uri, uris, mime_type, NULL); + g_free (uri); gtk_widget_show (vbox); g_free (mime_type); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/src/nemo-view.c new/nemo-4.8.5/src/nemo-view.c --- old/nemo-4.8.4/src/nemo-view.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/src/nemo-view.c 2021-02-26 12:38:31.000000000 +0100 @@ -1449,7 +1449,7 @@ action = gtk_action_group_get_action (view->details->dir_action_group, NEMO_ACTION_TRASH); if ((gtk_action_get_sensitive (action) && gtk_action_get_visible (action)) || - (showing_favorites_directory (view) || showing_recent_directory (view))) { + showing_recent_directory (view)) { trash_or_delete_selected_files (view); return TRUE; } @@ -5852,6 +5852,8 @@ g_free (subdir); } } + + g_clear_object (&menu); } } @@ -9731,6 +9733,7 @@ gboolean selection_contains_recent; gboolean selection_contains_favorites; gboolean selection_contains_directory; + gboolean selection_contains_trash; gboolean can_create_files; gboolean can_delete_files; gboolean can_copy_files; @@ -9762,6 +9765,7 @@ selection_contains_recent = showing_recent_directory (view); selection_contains_favorites = showing_favorites_directory (view); selection_contains_directory = directory_in_selection (view, selection); + selection_contains_trash = all_selected_items_in_trash (view, selection); can_create_files = nemo_view_supports_creating_files (view); can_delete_files = can_delete_all (selection) && @@ -9923,7 +9927,7 @@ reset_extension_actions_menu (view, selection); reset_move_copy_to_menu (view); - if (all_selected_items_in_trash (view, selection)) { + if (selection_contains_trash) { label = _("_Delete Permanently"); tip = _("Delete all selected items permanently"); show_separate_delete_command = FALSE; @@ -10150,12 +10154,14 @@ action = gtk_action_group_get_action (view->details->dir_action_group, NEMO_ACTION_PIN_FILE); - gtk_action_set_visible (action, !is_desktop_view && !first_selected_is_pinned && !(selection_contains_recent || selection_contains_favorites)); + gtk_action_set_visible (action, selection_count > 0 && !is_desktop_view && !first_selected_is_pinned && + !(selection_contains_recent || selection_contains_favorites || selection_contains_trash)); action = gtk_action_group_get_action (view->details->dir_action_group, NEMO_ACTION_UNPIN_FILE); - gtk_action_set_visible (action, !is_desktop_view && first_selected_is_pinned && !(selection_contains_recent || selection_contains_favorites)); + gtk_action_set_visible (action, selection_count > 0 && !is_desktop_view && first_selected_is_pinned && + !(selection_contains_recent || selection_contains_favorites || selection_contains_trash)); action = gtk_action_group_get_action (view->details->dir_action_group, NEMO_ACTION_FAVORITE_FILE); @@ -10163,19 +10169,21 @@ gboolean first_selected_is_favorite = selection_count > 0 && nemo_file_get_is_favorite (NEMO_FILE (selection->data)); - if (selection_contains_favorites) { + if (selection_contains_favorites || selection_count == 0) { gtk_action_set_visible (action, FALSE); } else { - gtk_action_set_visible (action, !is_desktop_view && !first_selected_is_favorite && !selection_contains_recent); + gtk_action_set_visible (action, !is_desktop_view && !first_selected_is_favorite && + !selection_contains_recent && !selection_contains_trash); } action = gtk_action_group_get_action (view->details->dir_action_group, NEMO_ACTION_UNFAVORITE_FILE); - if (selection_contains_favorites) { + if (selection_contains_favorites && selection_count > 0) { gtk_action_set_visible (action, TRUE); } else { - gtk_action_set_visible (action, !is_desktop_view && first_selected_is_favorite && !selection_contains_recent); + gtk_action_set_visible (action, !is_desktop_view && first_selected_is_favorite && + !selection_contains_recent && !selection_contains_trash); } update_configurable_context_menu_items (view); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-4.8.4/src/nemo-window.c new/nemo-4.8.5/src/nemo-window.c --- old/nemo-4.8.4/src/nemo-window.c 2021-01-03 12:32:53.000000000 +0100 +++ new/nemo-4.8.5/src/nemo-window.c 2021-02-26 12:38:31.000000000 +0100 @@ -1166,6 +1166,13 @@ active_slot = nemo_window_get_active_slot (window); view = active_slot->content_view; + /** + * Disable the GTK Emoji Chooser + */ + if ((event->keyval == GDK_KEY_semicolon || event->keyval == GDK_KEY_period) && (event->state & GDK_CONTROL_MASK)) { + return FALSE; + } + if (view != NULL && nemo_view_get_is_renaming (view)) { /* if we're renaming, just forward the event to the * focused widget and return. We don't want to process the window