diff options
author | Ondrej Holy <oholy@redhat.com> | 2022-02-11 14:47:04 +0100 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2022-02-11 14:59:48 +0100 |
commit | 9dc557e86194df0f73134b3bdf69a345ae2e3dd0 (patch) | |
tree | 16595ba7254b0dc57126bc693d0e87e81d81831c | |
parent | 0dc816f03878501a8e7f7d25aa2279adccea265a (diff) | |
download | nautilus-9dc557e86194df0f73134b3bdf69a345ae2e3dd0.tar.gz |
Revert "general: Stop using GtkWidget::popup-menu"
This reverts commit 80b6f77d2bc1b9463dc0195f44c786f35478d826.
-rw-r--r-- | src/nautilus-files-view.c | 38 | ||||
-rw-r--r-- | src/nautilus-window.c | 12 |
2 files changed, 35 insertions, 15 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index 956f7328b..41d392e3b 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -1663,16 +1663,6 @@ action_preview_selection (GSimpleAction *action, } static void -action_popup_menu (GSimpleAction *action, - GVariant *state, - gpointer user_data) -{ - NautilusFilesView *view = NAUTILUS_FILES_VIEW (user_data); - - nautilus_files_view_pop_up_selection_context_menu (view, -1, -1); -} - -static void pattern_select_response_cb (GtkWidget *dialog, int response, gpointer user_data) @@ -7056,7 +7046,6 @@ const GActionEntry view_entries[] = { "select-pattern", action_select_pattern }, { "invert-selection", action_invert_selection }, { "preview-selection", action_preview_selection }, - { "popup-menu", action_popup_menu }, }; static gboolean @@ -7643,9 +7632,6 @@ real_update_actions_state (NautilusFilesView *view) action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), "preview-selection"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), selection_count != 0); - action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), - "popup-menu"); - g_simple_action_set_enabled (G_SIMPLE_ACTION (action), selection_count != 0); /* Drive menu */ show_mount = (selection != NULL); @@ -8310,6 +8296,25 @@ nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view, gtk_popover_popup (GTK_POPOVER (priv->background_menu)); } +static gboolean +popup_menu_callback (NautilusFilesView *view) +{ + g_autolist (NautilusFile) selection = NULL; + + selection = nautilus_view_get_selection (NAUTILUS_VIEW (view)); + + if (selection != NULL) + { + nautilus_files_view_pop_up_selection_context_menu (view, -1, -1); + } + else + { + nautilus_files_view_pop_up_background_context_menu (view, 0, 0); + } + + return TRUE; +} + static void schedule_update_context_menus (NautilusFilesView *view) { @@ -9590,6 +9595,10 @@ nautilus_files_view_init (NautilusFilesView *view) "event", G_CALLBACK (on_event), view); + g_signal_connect_swapped (priv->scrolled_window, + "popup-menu", + G_CALLBACK (popup_menu_callback), + view); gtk_overlay_set_child (GTK_OVERLAY (priv->overlay), priv->scrolled_window); @@ -9748,7 +9757,6 @@ nautilus_files_view_init (NautilusFilesView *view) nautilus_application_set_accelerators (app, "view.zoom-standard", zoom_standard_accels); nautilus_application_set_accelerator (app, "view.invert-selection", "<shift><control>i"); nautilus_application_set_accelerator (app, "view.preview-selection", "space"); - nautilus_application_set_accelerator (app, "view.popup-menu", "Menu"); priv->starred_cancellable = g_cancellable_new (); priv->tag_manager = nautilus_tag_manager_get (); diff --git a/src/nautilus-window.c b/src/nautilus-window.c index af695ad0a..5890f4167 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1821,6 +1821,15 @@ notebook_button_press_cb (GtkGestureMultiPress *gesture, } } +static gboolean +notebook_popup_menu_cb (GtkWidget *widget, + gpointer user_data) +{ + NautilusWindow *window = user_data; + notebook_popup_menu_show (window, 0, 0); + return TRUE; +} + GtkWidget * nautilus_window_get_toolbar (NautilusWindow *window) { @@ -1938,6 +1947,9 @@ notebook_create_window_cb (GtkNotebook *notebook, static void setup_notebook (NautilusWindow *window) { + g_signal_connect (window->notebook, "popup-menu", + G_CALLBACK (notebook_popup_menu_cb), + window); g_signal_connect (window->notebook, "switch-page", G_CALLBACK (notebook_switch_page_cb), window); |