gtkfilechooser: avoid repeated selection counts in popup menu

This commit is contained in:
Daemonratte 2026-05-21 22:22:27 +02:00
commit da0dd44412

View file

@ -6772,8 +6772,12 @@ file_list_build_popup_menu (GtkFileChooserDefault *impl)
static void
file_list_update_popup_menu (GtkFileChooserDefault *impl)
{
guint selected_count;
file_list_build_popup_menu (impl);
selected_count = current_selection_count_selected_rows (impl);
/* FIXME - handle OPERATION_MODE_SEARCH and OPERATION_MODE_RECENT */
/* The sensitivity of the Add to Bookmarks item is set in
@ -6782,12 +6786,12 @@ file_list_update_popup_menu (GtkFileChooserDefault *impl)
if (impl->browse_files_popup_menu_copy_item)
gtk_widget_set_sensitive (impl->browse_files_popup_menu_copy_item,
current_selection_count_selected_rows (impl) > 0);
selected_count > 0);
if (impl->browse_files_popup_menu_cut_item)
gtk_widget_set_sensitive (impl->browse_files_popup_menu_cut_item,
impl->operation_mode == OPERATION_MODE_BROWSE &&
current_selection_count_selected_rows (impl) > 0);
selected_count > 0);
if (impl->browse_files_popup_menu_paste_item)
gtk_widget_set_sensitive (impl->browse_files_popup_menu_paste_item,
@ -6797,7 +6801,7 @@ file_list_update_popup_menu (GtkFileChooserDefault *impl)
if (impl->browse_files_popup_menu_copy_location_item)
gtk_widget_set_sensitive (impl->browse_files_popup_menu_copy_location_item,
current_selection_count_selected_rows (impl) > 0);
selected_count > 0);
if (impl->browse_files_popup_menu_open_containing_folder_item)
{
@ -6812,24 +6816,18 @@ file_list_update_popup_menu (GtkFileChooserDefault *impl)
gtk_widget_set_sensitive (impl->browse_files_popup_menu_open_containing_folder_item,
show_item &&
current_selection_count_selected_rows (impl) == 1);
selected_count == 1);
}
if (impl->browse_files_popup_menu_rename_item)
{
guint selected_count;
selected_count = current_selection_count_selected_rows (impl);
gtk_widget_set_sensitive (impl->browse_files_popup_menu_rename_item,
impl->operation_mode == OPERATION_MODE_BROWSE &&
selected_count == 1);
}
gtk_widget_set_sensitive (impl->browse_files_popup_menu_rename_item,
impl->operation_mode == OPERATION_MODE_BROWSE &&
selected_count == 1);
if (impl->browse_files_popup_menu_trash_item)
gtk_widget_set_sensitive (impl->browse_files_popup_menu_trash_item,
impl->operation_mode == OPERATION_MODE_BROWSE &&
current_selection_count_selected_rows (impl) > 0);
selected_count > 0);
/* 'Show Hidden Files' */
g_signal_handlers_block_by_func (impl->browse_files_popup_menu_hidden_files_item,