aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-11-08 04:28:22 +0800
committerChristian Persch <chpe@src.gnome.org>2004-11-08 04:28:22 +0800
commit57608f0c8f6bf6b753387f43f3cf0f9d9b8ed045 (patch)
treec9a16dc1690574c7254f8a83246f3c530548f7f4 /lib
parentc9bb2e2c7f9db1ee1a6cf684e2f51c110cfa868c (diff)
downloadgsoc2013-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.c13
-rw-r--r--lib/ephy-gui.h5
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,