diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-09-15 16:04:46 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-09-15 16:04:46 +0800 |
commit | 9d03728737c3ac793ac7a8d63398dad4053be7f9 (patch) | |
tree | 39857274e7cdcac6c079329fa1511c4b8201bc20 /lib/widgets | |
parent | ad595146b5a48a6b527d0f643e5b06edae32917d (diff) | |
download | gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.tar gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.tar.gz gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.tar.bz2 gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.tar.lz gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.tar.xz gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.tar.zst gsoc2013-epiphany-9d03728737c3ac793ac7a8d63398dad4053be7f9.zip |
Add api to show a context menu. Useful to make distinction between key and
2004-09-15 Marco Pesenti Gritti <marco@gnome.org>
* 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
Diffstat (limited to 'lib/widgets')
-rw-r--r-- | lib/widgets/ephy-node-view.c | 25 | ||||
-rw-r--r-- | lib/widgets/ephy-node-view.h | 3 |
2 files changed, 28 insertions, 0 deletions
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 <gtk/gtkcellrenderertoggle.h> #include <gtk/gtktreemodelfilter.h> #include <gtk/gtkwindow.h> +#include <gtk/gtkmain.h> #include <gdk/gdkkeysyms.h> #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 */ |