summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-30 18:43:49 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-30 18:43:49 +0000
commit753867a1a5a37391d7498fb8a6373e7a77971779 (patch)
treea6a944d59524f309ef2c58a2f32cbdee23fadbfe /chrome
parent04e912e2c64a8c7bb26e1045e5c61ade5d828254 (diff)
downloadchromium_src-753867a1a5a37391d7498fb8a6373e7a77971779.zip
chromium_src-753867a1a5a37391d7498fb8a6373e7a77971779.tar.gz
chromium_src-753867a1a5a37391d7498fb8a6373e7a77971779.tar.bz2
merge r32449 into 249 branch:
------------------------------------------------------------------------ r32449 | estade@chromium.org | 2009-11-18 16:36:21 -0800 (Wed, 18 Nov 2009) | 7 lines GTK: Fix popup menu positioning. Don't go off end of screen. push_in doesn't actually work as well as one might hope. BUG=27800 Review URL: http://codereview.chromium.org/408017 ------------------------------------------------------------------------ TBR=laforge Review URL: http://codereview.chromium.org/450014 git-svn-id: svn://svn.chromium.org/chrome/branches/249/src@33304 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/gtk/menu_gtk.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc
index 862039e..4db7082 100644
--- a/chrome/browser/gtk/menu_gtk.cc
+++ b/chrome/browser/gtk/menu_gtk.cc
@@ -322,6 +322,14 @@ void MenuGtk::PointMenuPositionFunc(GtkMenu* menu,
gfx::Point* point = reinterpret_cast<gfx::Point*>(userdata);
*x = point->x();
*y = point->y();
+
+ GtkRequisition menu_req;
+ gtk_widget_size_request(GTK_WIDGET(menu), &menu_req);
+ GdkScreen* screen = gdk_screen_get_default();
+ gint screen_height = gdk_screen_get_height(screen);
+
+ if (*y + menu_req.height >= screen_height)
+ *y -= menu_req.height;
}
void MenuGtk::UpdateMenu() {