summaryrefslogtreecommitdiff
path: root/src/nautilus-files-view.c
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2018-05-12 17:25:57 +0100
committerCarlos Soriano <csoriano1618@gmail.com>2018-07-27 15:01:37 +0000
commit5e8e63eff9ee92c3b8660ad1ba89f2ee08307175 (patch)
tree9aba68e20b88aaf215e34fb21f4086d99d63d821 /src/nautilus-files-view.c
parenta6a7f0c15e839d35df484554dce7a9fd7fe36f33 (diff)
downloadnautilus-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.c27
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