diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-30 18:43:49 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-30 18:43:49 +0000 |
commit | 753867a1a5a37391d7498fb8a6373e7a77971779 (patch) | |
tree | a6a944d59524f309ef2c58a2f32cbdee23fadbfe /chrome | |
parent | 04e912e2c64a8c7bb26e1045e5c61ade5d828254 (diff) | |
download | chromium_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.cc | 8 |
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() { |