From 9d03728737c3ac793ac7a8d63398dad4053be7f9 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 15 Sep 2004 08:04:46 +0000 Subject: Add api to show a context menu. Useful to make distinction between key and 2004-09-15 Marco Pesenti Gritti * lib/widgets/ephy-node-view.c: (ephy_node_view_add_toggle), (ephy_node_view_popup): * lib/widgets/ephy-node-view.h: Add api to show a context menu. Useful to make distinction between key and mouse events. * src/bookmarks/ephy-bookmarks-editor.c: (ephy_bookmarks_editor_show_popup_cb), (keyword_node_show_popup_cb): * src/ephy-history-window.c: (ephy_history_window_show_popup_cb): Use it. Fix #152431 --- lib/widgets/ephy-node-view.c | 25 +++++++++++++++++++++++++ lib/widgets/ephy-node-view.h | 3 +++ 2 files changed, 28 insertions(+) (limited to 'lib') diff --git a/lib/widgets/ephy-node-view.c b/lib/widgets/ephy-node-view.c index 0afbb9844..dc23e5efa 100644 --- a/lib/widgets/ephy-node-view.c +++ b/lib/widgets/ephy-node-view.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include "ephy-node-view.h" @@ -1577,6 +1578,30 @@ ephy_node_view_add_toggle (EphyNodeView *view, EphyTreeModelNodeValueFunc value_ gtk_tree_view_append_column (GTK_TREE_VIEW (view), col); } +void +ephy_node_view_popup (EphyNodeView *view, GtkWidget *menu) +{ + GdkEvent *event; + + event = gtk_get_current_event (); + if (event) + { + if (event->type == GDK_KEY_PRESS) + { + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, + ephy_gui_menu_position_tree_selection, + view, 2, gtk_get_current_event_time ()); + } + else + { + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, + NULL, 2, gtk_get_current_event_time ()); + } + + gdk_event_free (event); + } +} + static void ephy_node_view_class_init (EphyNodeViewClass *klass) { diff --git a/lib/widgets/ephy-node-view.h b/lib/widgets/ephy-node-view.h index 0779e9d5c..339eb5c62 100644 --- a/lib/widgets/ephy-node-view.h +++ b/lib/widgets/ephy-node-view.h @@ -128,6 +128,9 @@ void ephy_node_view_edit (EphyNodeView *view, gboolean ephy_node_view_is_target (EphyNodeView *view); +void ephy_node_view_popup (EphyNodeView *view, + GtkWidget *menu); + G_END_DECLS #endif /* EPHY_NODE_VIEW_H */ -- cgit v1.2.3