diff options
author | António Fernandes <antoniof@gnome.org> | 2018-05-12 17:25:57 +0100 |
---|---|---|
committer | Carlos Soriano <csoriano1618@gmail.com> | 2018-07-27 15:01:37 +0000 |
commit | 5e8e63eff9ee92c3b8660ad1ba89f2ee08307175 (patch) | |
tree | 9aba68e20b88aaf215e34fb21f4086d99d63d821 /src/nautilus-files-view.c | |
parent | a6a7f0c15e839d35df484554dce7a9fd7fe36f33 (diff) | |
download | nautilus-5e8e63eff9ee92c3b8660ad1ba89f2ee08307175.tar.gz |
ui-utilities: Move menu pop up code to files-view
In the past, nautilus_pop_up_context_menu_at_pointer() was the common
path for popping up context menus from the view and pathbar.
However, different paths were introduced in
commit 29cf64bd7632b25dd56a275078da6130b201edeb and
commit 489d4d091e7006f0ec68849e836a52119af88959, which
share some code but couldn't use this API.
Now that the pathbar context menus are gone, this is actually
causing more code duplication while making it harder to read.
Instead, handle everything in files-view.c.
Diffstat (limited to 'src/nautilus-files-view.c')
-rw-r--r-- | src/nautilus-files-view.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index f0e50cb7a..d5cdc838b 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -8170,6 +8170,7 @@ nautilus_files_view_pop_up_selection_context_menu (NautilusFilesView *view, const GdkEvent *event) { NautilusFilesViewPrivate *priv; + g_autoptr (GtkWidget) gtk_menu = NULL; g_assert (NAUTILUS_IS_FILES_VIEW (view)); @@ -8180,32 +8181,28 @@ nautilus_files_view_pop_up_selection_context_menu (NautilusFilesView *view, */ update_context_menus_if_pending (view); + gtk_menu = gtk_menu_new_from_model (G_MENU_MODEL (priv->selection_menu)); + gtk_menu_attach_to_widget (GTK_MENU (gtk_menu), GTK_WIDGET (view), NULL); if (event != NULL) { - nautilus_pop_up_context_menu_at_pointer (GTK_WIDGET (view), - priv->selection_menu, - event); + gtk_menu_popup_at_pointer (GTK_MENU (gtk_menu), event); } else { /* If triggered from the keyboard, popup at selection, not pointer */ g_autofree GdkRectangle *rectangle = NULL; - g_autoptr (GtkWidget) gtk_menu = NULL; rectangle = nautilus_files_view_reveal_for_selection_context_menu (view); g_return_if_fail (rectangle != NULL); - gtk_menu = gtk_menu_new_from_model (G_MENU_MODEL (priv->selection_menu)); - gtk_menu_attach_to_widget (GTK_MENU (gtk_menu), GTK_WIDGET (view), NULL); - gtk_menu_popup_at_rect (GTK_MENU (gtk_menu), gtk_widget_get_window (GTK_WIDGET (view)), rectangle, GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL); - g_object_ref_sink (gtk_menu); } + g_object_ref_sink (gtk_menu); } /** @@ -8220,6 +8217,7 @@ nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view, const GdkEvent *event) { NautilusFilesViewPrivate *priv; + g_autoptr (GtkWidget) gtk_menu = NULL; g_assert (NAUTILUS_IS_FILES_VIEW (view)); @@ -8230,28 +8228,23 @@ nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view, */ update_context_menus_if_pending (view); + gtk_menu = gtk_menu_new_from_model (G_MENU_MODEL (priv->background_menu)); + gtk_menu_attach_to_widget (GTK_MENU (gtk_menu), GTK_WIDGET (view), NULL); if (event != NULL) { - nautilus_pop_up_context_menu_at_pointer (GTK_WIDGET (view), - priv->background_menu, - event); + gtk_menu_popup_at_pointer (GTK_MENU (gtk_menu), event); } else { /* It was triggered from the keyboard, so pop up from the center of view. */ - g_autoptr (GtkWidget) gtk_menu = NULL; - - gtk_menu = gtk_menu_new_from_model (G_MENU_MODEL (priv->background_menu)); - gtk_menu_attach_to_widget (GTK_MENU (gtk_menu), GTK_WIDGET (view), NULL); - gtk_menu_popup_at_widget (GTK_MENU (gtk_menu), GTK_WIDGET (view), GDK_GRAVITY_CENTER, GDK_GRAVITY_CENTER, NULL); - g_object_ref_sink (gtk_menu); } + g_object_ref_sink (gtk_menu); } static gboolean |