[nautilus/antonioffix-menus-and-popovers: 5/14] ui-utilities: Rename and simplify pop_up_context_menu()



commit 0339b5b3ee18e335f1643d27da24d9d829717f45
Author: António Fernandes <antoniof gnome org>
Date:   Tue Jan 16 17:14:22 2018 +0000

    ui-utilities: Rename and simplify pop_up_context_menu()
    
    nautilus_pop_up_context_menu() was implemented in bb884cb6 when it was
    a wrapper for gtk_menu_popup(). But gtk_menu_popup() has since
    deprecated, so it was ported to gtk_menu_popup_at_pointer() in 1f57c5b1.
    
    However, _popup_at_pointer() is not enough for our context menu needs.
    We will use _popup_at_rect() and _popup_at_widget in future commits.
    
    Rename to nautilus_pop_up_context_menu_at_pointer() to reflect this
    specific use. Also, simplify the code, as GtkMenu's API already
    interprets event=NULL as the current event.

 src/nautilus-files-view.c   |  8 ++++++--
 src/nautilus-pathbar.c      |  6 +++---
 src/nautilus-ui-utilities.c | 19 +++++++++++--------
 src/nautilus-ui-utilities.h |  6 +++---
 4 files changed, 23 insertions(+), 16 deletions(-)
---
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index dd944c351..e2f495b2f 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -8124,7 +8124,9 @@ nautilus_files_view_pop_up_selection_context_menu  (NautilusFilesView *view,
      */
     update_context_menus_if_pending (view);
 
-    nautilus_pop_up_context_menu (GTK_WIDGET (view), priv->selection_menu, event);
+    nautilus_pop_up_context_menu_at_pointer (GTK_WIDGET (view),
+                                             priv->selection_menu,
+                                             event);
 }
 
 /**
@@ -8149,7 +8151,9 @@ nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view,
      */
     update_context_menus_if_pending (view);
 
-    nautilus_pop_up_context_menu (GTK_WIDGET (view), priv->background_menu, event);
+    nautilus_pop_up_context_menu_at_pointer (GTK_WIDGET (view),
+                                             priv->background_menu,
+                                             event);
 }
 
 static gboolean
diff --git a/src/nautilus-pathbar.c b/src/nautilus-pathbar.c
index dc8ee6dbe..8466e31de 100644
--- a/src/nautilus-pathbar.c
+++ b/src/nautilus-pathbar.c
@@ -1626,9 +1626,9 @@ real_pop_up_pathbar_context_menu (NautilusPathBar *self)
 
     priv = nautilus_path_bar_get_instance_private (self);
 
-    nautilus_pop_up_context_menu (GTK_WIDGET (self),
-                                  priv->context_menu,
-                                  priv->context_menu_event);
+    nautilus_pop_up_context_menu_at_pointer (GTK_WIDGET (self),
+                                             priv->context_menu,
+                                             priv->context_menu_event);
 }
 
 static void
diff --git a/src/nautilus-ui-utilities.c b/src/nautilus-ui-utilities.c
index 58958e5e4..ad77d22ee 100644
--- a/src/nautilus-ui-utilities.c
+++ b/src/nautilus-ui-utilities.c
@@ -168,12 +168,18 @@ nautilus_gmenu_add_item_in_submodel (GMenu       *menu,
     g_object_unref (submodel);
 }
 
+/**
+ * nautilus_pop_up_context_menu_at_pointer:
+ *
+ * Pop up a context menu at the pointer's position. If @event_button is NULL,
+ * the current even will be assumed by gtk_menu_popup_at_pointer().
+ */
 void
-nautilus_pop_up_context_menu (GtkWidget      *parent,
-                              GMenu          *menu,
-                              GdkEventButton *button_event)
+nautilus_pop_up_context_menu_at_pointer (GtkWidget            *parent,
+                                         GMenu                *menu,
+                                         const GdkEventButton *button_event)
 {
-    GtkWidget *gtk_menu;
+    g_autoptr (GtkWidget) gtk_menu = NULL;
 
     g_return_if_fail (G_IS_MENU (menu));
     g_return_if_fail (GTK_IS_WIDGET (parent));
@@ -181,12 +187,9 @@ nautilus_pop_up_context_menu (GtkWidget      *parent,
     gtk_menu = gtk_menu_new_from_model (G_MENU_MODEL (menu));
     gtk_menu_attach_to_widget (GTK_MENU (gtk_menu), parent, NULL);
 
-    gtk_menu_popup_at_pointer (GTK_MENU (gtk_menu),
-                               button_event ? (GdkEvent *) button_event :
-                               gtk_get_current_event ());
+    gtk_menu_popup_at_pointer (GTK_MENU (gtk_menu), (GdkEvent *) button_event);
 
     g_object_ref_sink (gtk_menu);
-    g_object_unref (gtk_menu);
 }
 
 #define NAUTILUS_THUMBNAIL_FRAME_LEFT 3
diff --git a/src/nautilus-ui-utilities.h b/src/nautilus-ui-utilities.h
index 0dfd31ca9..f6cac6ea8 100644
--- a/src/nautilus-ui-utilities.h
+++ b/src/nautilus-ui-utilities.h
@@ -34,9 +34,9 @@ void nautilus_gmenu_merge                          (GMenu             *original,
                                                    GMenu             *gmenu_to_merge,
                                                    const gchar       *submodel_name,
                                                    gboolean           prepend);
-void nautilus_pop_up_context_menu                  (GtkWidget         *parent,
-                                                    GMenu             *menu,
-                                                    GdkEventButton    *button_event);
+void nautilus_pop_up_context_menu_at_pointer       (GtkWidget            *parent,
+                                                    GMenu                *menu,
+                                                    const GdkEventButton *button_event);
 
 void   nautilus_ui_frame_image                     (GdkPixbuf        **pixbuf);
 void   nautilus_ui_frame_video                     (GdkPixbuf        **pixbuf);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]