From 1f545ca03b769815e6e1da4cb180c5028d69d827 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 7 Nov 2004 20:26:57 +0000 Subject: Sanitise the embed popup position. Fixes bug #157162. 2004-11-07 Christian Persch * 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. --- lib/ephy-gui.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'lib/ephy-gui.c') diff --git a/lib/ephy-gui.c b/lib/ephy-gui.c index 65e0b0de6..2e2d355c1 100644 --- a/lib/ephy-gui.c +++ b/lib/ephy-gui.c @@ -40,14 +40,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); @@ -92,7 +97,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); } /** @@ -125,7 +130,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 -- cgit v1.2.3