diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-25 17:05:42 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-25 17:05:42 +0000 |
commit | d796802f682491c8c21b09a052f1d9d73843fa4c (patch) | |
tree | 8012760a636775a119d254b6f95e19f1a45ea80d /chrome | |
parent | 8bcdec90007a4227753fab93a5ad0d3242fb862d (diff) | |
download | chromium_src-d796802f682491c8c21b09a052f1d9d73843fa4c.zip chromium_src-d796802f682491c8c21b09a052f1d9d73843fa4c.tar.gz chromium_src-d796802f682491c8c21b09a052f1d9d73843fa4c.tar.bz2 |
Fix system menu positioning a bit. In Aero glass, the maximized mode menu was going offscreen by one pixel, causing Windows to reposition it strangely. In both frames, the vertical offset below the tabstrip needed a bit of tweaking.
BUG=7927
Review URL: http://codereview.chromium.org/27115
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10337 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/views/frame/aero_glass_non_client_view.cc | 11 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_non_client_view.cc | 3 |
2 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/views/frame/aero_glass_non_client_view.cc b/chrome/browser/views/frame/aero_glass_non_client_view.cc index f4974be..f787885 100644 --- a/chrome/browser/views/frame/aero_glass_non_client_view.cc +++ b/chrome/browser/views/frame/aero_glass_non_client_view.cc @@ -151,9 +151,14 @@ gfx::Size AeroGlassNonClientView::CalculateWindowSizeForClientSize( gfx::Point AeroGlassNonClientView::GetSystemMenuPoint() const { gfx::Point system_menu_point; if (browser_view_->IsTabStripVisible()) { - system_menu_point.SetPoint( - NonClientBorderThickness() - kClientEdgeThickness, - NonClientTopBorderHeight() + browser_view_->GetTabStripHeight()); + // The maximized mode bit here is because in maximized mode the frame edge + // and the client edge are both offscreen, whereas in the opaque frame + // (where we don't do this trick) maximized windows have no client edge and + // only the frame edge is offscreen. + system_menu_point.SetPoint(NonClientBorderThickness() - + (frame_->IsMaximized() ? 0 : kClientEdgeThickness), + NonClientTopBorderHeight() + browser_view_->GetTabStripHeight() - + kClientEdgeThickness); } else { system_menu_point.SetPoint(0, -kFrameShadowThickness); } diff --git a/chrome/browser/views/frame/opaque_non_client_view.cc b/chrome/browser/views/frame/opaque_non_client_view.cc index ca2e8bf..bb4da43 100644 --- a/chrome/browser/views/frame/opaque_non_client_view.cc +++ b/chrome/browser/views/frame/opaque_non_client_view.cc @@ -481,8 +481,7 @@ gfx::Point OpaqueNonClientView::GetSystemMenuPoint() const { int tabstrip_height = browser_view_->IsTabStripVisible() ? browser_view_->GetTabStripHeight() : 0; gfx::Point system_menu_point(FrameBorderThickness(), - NonClientTopBorderHeight() + tabstrip_height - - BottomEdgeThicknessWithinNonClientHeight()); + NonClientTopBorderHeight() + tabstrip_height - kClientEdgeThickness); ConvertPointToScreen(this, &system_menu_point); return system_menu_point; } |