diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-11-08 04:28:22 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-11-08 04:28:22 +0800 |
commit | 57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045 (patch) | |
tree | c9a16dc1690574c7254f8a83246f3c530548f7f4 /lib | |
parent | c9bb2e2c7f9db1ee1a6cf684e2f51c110cfa868c (diff) | |
download | gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.tar gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.tar.gz gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.tar.bz2 gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.tar.lz gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.tar.xz gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.tar.zst gsoc2013-epiphany-57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045.zip |
Sanitise the embed popup position. Fixes bug #157162.
2004-11-07 Christian Persch <chpe@cvs.gnome.org>
* lib/ephy-gui.c: (ephy_gui_sanitise_popup_position),
(ephy_gui_menu_position_tree_selection),
(ephy_gui_menu_position_under_widget):
* lib/ephy-gui.h:
* src/ephy-window.c: (popup_menu_at_coords), (show_embed_popup):
Sanitise the embed popup position. Fixes bug #157162.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ephy-gui.c | 13 | ||||
-rw-r--r-- | lib/ephy-gui.h | 5 |
2 files changed, 14 insertions, 4 deletions
diff --git a/lib/ephy-gui.c b/lib/ephy-gui.c index 3b80abe13..4fb3490fc 100644 --- a/lib/ephy-gui.c +++ b/lib/ephy-gui.c @@ -45,14 +45,19 @@ GtkStyle *loading_text_style = NULL; GtkStyle *new_text_style = NULL; -static void -sanitize_popup_position (GtkWidget *widget, GtkMenu *menu, gint *x, gint *y) +void +ephy_gui_sanitise_popup_position (GtkMenu *menu, + GtkWidget *widget, + gint *x, + gint *y) { GdkScreen *screen = gtk_widget_get_screen (widget); gint monitor_num; GdkRectangle monitor; GtkRequisition req; + g_return_if_fail (widget != NULL); + gtk_widget_size_request (GTK_WIDGET (menu), &req); monitor_num = gdk_screen_get_monitor_at_point (screen, *x, *y); @@ -97,7 +102,7 @@ ephy_gui_menu_position_tree_selection (GtkMenu *menu, g_list_free (selected_rows); } - sanitize_popup_position (widget, menu, x, y); + ephy_gui_sanitise_popup_position (menu, widget, x, y); } /** @@ -130,7 +135,7 @@ ephy_gui_menu_position_under_widget (GtkMenu *menu, *y += w->allocation.y + w->allocation.height; - sanitize_popup_position (w, menu, x, y); + ephy_gui_sanitise_popup_position (menu, w, x, y); } gboolean diff --git a/lib/ephy-gui.h b/lib/ephy-gui.h index 60da456da..82a5b2643 100644 --- a/lib/ephy-gui.h +++ b/lib/ephy-gui.h @@ -30,6 +30,11 @@ G_BEGIN_DECLS +void ephy_gui_sanitise_popup_position (GtkMenu *menu, + GtkWidget *parent_widget, + gint *x, + gint *y); + void ephy_gui_menu_position_tree_selection (GtkMenu *menu, gint *x, gint *y, |