Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/browser/views/frame/browser_frame.cc

Issue 66055: Don't reserve space for an auto-hide taskbar that's not always-on-top. Windo... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/common/win_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/views/frame/browser_frame.h" 5 #include "chrome/browser/views/frame/browser_frame.h"
6 6
7 #include <dwmapi.h> 7 #include <dwmapi.h>
8 #include <shellapi.h> 8 #include <shellapi.h>
9 9
10 #include "chrome/browser/browser_list.h" 10 #include "chrome/browser/browser_list.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 if (browser_view_->IsMaximized()) { 131 if (browser_view_->IsMaximized()) {
132 // Make the maximized mode client rect fit the screen exactly, by 132 // Make the maximized mode client rect fit the screen exactly, by
133 // subtracting the border Windows automatically adds for maximized mode. 133 // subtracting the border Windows automatically adds for maximized mode.
134 border_thickness = GetSystemMetrics(SM_CXSIZEFRAME); 134 border_thickness = GetSystemMetrics(SM_CXSIZEFRAME);
135 // Find all auto-hide taskbars along the screen edges and adjust in by the 135 // Find all auto-hide taskbars along the screen edges and adjust in by the
136 // thickness of the auto-hide taskbar on each such edge, so the window isn't 136 // thickness of the auto-hide taskbar on each such edge, so the window isn't
137 // treated as a "fullscreen app", which would cause the taskbars to 137 // treated as a "fullscreen app", which would cause the taskbars to
138 // disappear. 138 // disappear.
139 HMONITOR monitor = MonitorFromWindow(GetNativeView(), 139 HMONITOR monitor = MonitorFromWindow(GetNativeView(),
140 MONITOR_DEFAULTTONEAREST); 140 MONITOR_DEFAULTTONEAREST);
141 if (win_util::EdgeHasAutoHideTaskbar(ABE_LEFT, monitor)) 141 if (win_util::EdgeHasTopmostAutoHideTaskbar(ABE_LEFT, monitor))
142 client_rect->left += win_util::kAutoHideTaskbarThicknessPx; 142 client_rect->left += win_util::kAutoHideTaskbarThicknessPx;
143 if (win_util::EdgeHasAutoHideTaskbar(ABE_RIGHT, monitor)) 143 if (win_util::EdgeHasTopmostAutoHideTaskbar(ABE_RIGHT, monitor))
144 client_rect->right -= win_util::kAutoHideTaskbarThicknessPx; 144 client_rect->right -= win_util::kAutoHideTaskbarThicknessPx;
145 if (win_util::EdgeHasAutoHideTaskbar(ABE_BOTTOM, monitor)) { 145 if (win_util::EdgeHasTopmostAutoHideTaskbar(ABE_BOTTOM, monitor)) {
146 client_rect->bottom -= win_util::kAutoHideTaskbarThicknessPx; 146 client_rect->bottom -= win_util::kAutoHideTaskbarThicknessPx;
147 } else if (win_util::EdgeHasAutoHideTaskbar(ABE_TOP, monitor)) { 147 } else if (win_util::EdgeHasTopmostAutoHideTaskbar(ABE_TOP, monitor)) {
148 // Tricky bit. Due to a bug in DwmDefWindowProc()'s handling of 148 // Tricky bit. Due to a bug in DwmDefWindowProc()'s handling of
149 // WM_NCHITTEST, having any nonclient area atop the window causes the 149 // WM_NCHITTEST, having any nonclient area atop the window causes the
150 // caption buttons to draw onscreen but not respond to mouse hover/clicks. 150 // caption buttons to draw onscreen but not respond to mouse hover/clicks.
151 // So for a taskbar at the screen top, we can't push the client_rect->top 151 // So for a taskbar at the screen top, we can't push the client_rect->top
152 // down; instead, we move the bottom up by one pixel, which is the 152 // down; instead, we move the bottom up by one pixel, which is the
153 // smallest change we can make and still get a client area less than the 153 // smallest change we can make and still get a client area less than the
154 // screen size. This is visibly ugly, but there seems to be no better 154 // screen size. This is visibly ugly, but there seems to be no better
155 // solution. 155 // solution.
156 --client_rect->bottom; 156 --client_rect->bottom;
157 } 157 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 margins.cyBottomHeight = kClientEdgeThickness + 1; 226 margins.cyBottomHeight = kClientEdgeThickness + 1;
227 } 227 }
228 // In maximized mode, we only have a titlebar strip of glass, no side/bottom 228 // In maximized mode, we only have a titlebar strip of glass, no side/bottom
229 // borders. 229 // borders.
230 if (!browser_view_->IsFullscreen()) { 230 if (!browser_view_->IsFullscreen()) {
231 margins.cyTopHeight = 231 margins.cyTopHeight =
232 GetBoundsForTabStrip(browser_view_->tabstrip()).bottom(); 232 GetBoundsForTabStrip(browser_view_->tabstrip()).bottom();
233 } 233 }
234 DwmExtendFrameIntoClientArea(GetNativeView(), &margins); 234 DwmExtendFrameIntoClientArea(GetNativeView(), &margins);
235 } 235 }
OLDNEW
« no previous file with comments | « no previous file | chrome/common/win_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698