summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-25 17:05:42 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-25 17:05:42 +0000
commitd796802f682491c8c21b09a052f1d9d73843fa4c (patch)
tree8012760a636775a119d254b6f95e19f1a45ea80d /chrome
parent8bcdec90007a4227753fab93a5ad0d3242fb862d (diff)
downloadchromium_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.cc11
-rw-r--r--chrome/browser/views/frame/opaque_non_client_view.cc3
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;
}