aboutsummaryrefslogtreecommitdiffstats
path: root/src/bookmarks/ephy-bookmark-action.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarks/ephy-bookmark-action.c')
-rw-r--r--src/bookmarks/ephy-bookmark-action.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/bookmarks/ephy-bookmark-action.c b/src/bookmarks/ephy-bookmark-action.c
index a1e12f15b..27ab1d870 100644
--- a/src/bookmarks/ephy-bookmark-action.c
+++ b/src/bookmarks/ephy-bookmark-action.c
@@ -533,7 +533,9 @@ properties_activate_cb (GtkWidget *menu,
}
static void
-show_context_menu (EphyBookmarkAction *action, GtkWidget *proxy,
+show_context_menu (EphyBookmarkAction *action,
+ GtkWidget *proxy,
+ GdkEventButton *event,
GtkMenuPositionFunc func)
{
GtkWidget *menu, *item;
@@ -593,8 +595,17 @@ show_context_menu (EphyBookmarkAction *action, GtkWidget *proxy,
g_signal_connect (item, "activate",
G_CALLBACK (move_right_activate_cb), proxy);
- gtk_menu_popup (GTK_MENU (menu), NULL, NULL, func, proxy, 3,
- gtk_get_current_event_time ());
+ if (event != NULL)
+ {
+ gtk_menu_popup (GTK_MENU (menu), NULL, NULL, func, proxy,
+ event->button, event->time);
+ }
+ else
+ {
+ gtk_menu_popup (GTK_MENU (menu), NULL, NULL, func, proxy, 0,
+ gtk_get_current_event_time ());
+ gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE);
+ }
}
static gboolean
@@ -602,7 +613,7 @@ popup_menu_cb (GtkWidget *widget, EphyBookmarkAction *action)
{
if (gtk_widget_get_ancestor (widget, EPHY_TYPE_BOOKMARKSBAR))
{
- show_context_menu (action, widget,
+ show_context_menu (action, widget, NULL,
ephy_gui_menu_position_under_widget);
return TRUE;
}
@@ -618,7 +629,7 @@ button_press_cb (GtkWidget *widget,
if (event->button == 3 &&
gtk_widget_get_ancestor (widget, EPHY_TYPE_BOOKMARKSBAR))
{
- show_context_menu (action, widget, NULL);
+ show_context_menu (action, widget, event, NULL);
return TRUE;
}
else if (event->button == 2)