summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-ui-utilities.c30
-rw-r--r--src/nautilus-ui-utilities.h4
2 files changed, 6 insertions, 28 deletions
diff --git a/src/nautilus-ui-utilities.c b/src/nautilus-ui-utilities.c
index fedbb484b..e8fdab8b4 100644
--- a/src/nautilus-ui-utilities.c
+++ b/src/nautilus-ui-utilities.c
@@ -169,41 +169,19 @@ nautilus_gmenu_add_item_in_submodel (GMenu *menu,
void
nautilus_pop_up_context_menu (GtkWidget *parent,
GMenu *menu,
- GdkEventButton *event)
+ GdkEventButton *button_event)
{
GtkWidget *gtk_menu;
- int button;
-
g_return_if_fail (G_IS_MENU (menu));
g_return_if_fail (GTK_IS_WIDGET (parent));
gtk_menu = gtk_menu_new_from_model (G_MENU_MODEL (menu));
gtk_menu_attach_to_widget (GTK_MENU (gtk_menu), parent, NULL);
- /* The event button needs to be 0 if we're popping up this menu from
- * a button release, else a 2nd click outside the menu with any button
- * other than the one that invoked the menu will be ignored (instead
- * of dismissing the menu). This is a subtle fragility of the GTK menu code.
- */
- if (event)
- {
- button = event->type == GDK_BUTTON_RELEASE
- ? 0
- : event->button;
- }
- else
- {
- button = 0;
- }
-
- gtk_menu_popup (GTK_MENU (gtk_menu), /* menu */
- NULL, /* parent_menu_shell */
- NULL, /* parent_menu_item */
- NULL, /* popup_position_func */
- NULL, /* popup_position_data */
- button, /* button */
- event ? event->time : gtk_get_current_event_time ()); /* activate_time */
+ gtk_menu_popup_at_pointer (GTK_MENU (gtk_menu),
+ button_event ? (GdkEvent *) button_event :
+ gtk_get_current_event ());
g_object_ref_sink (gtk_menu);
g_object_unref (gtk_menu);
diff --git a/src/nautilus-ui-utilities.h b/src/nautilus-ui-utilities.h
index c214b805d..aa9042421 100644
--- a/src/nautilus-ui-utilities.h
+++ b/src/nautilus-ui-utilities.h
@@ -35,8 +35,8 @@ void nautilus_gmenu_merge (GMenu *original,
const gchar *submodel_name,
gboolean prepend);
void nautilus_pop_up_context_menu (GtkWidget *parent,
- GMenu *menu,
- GdkEventButton *event);
+ GMenu *menu,
+ GdkEventButton *button_event);
char * nautilus_escape_action_name (const char *action_name,
const char *prefix);