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

Unified Diff: chrome/browser/views/frame/glass_browser_frame_view.cc

Issue 28338: Make Chromium windows not hide auto-hide taskbars.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/views/frame/glass_browser_frame_view.cc
===================================================================
--- chrome/browser/views/frame/glass_browser_frame_view.cc (revision 10821)
+++ chrome/browser/views/frame/glass_browser_frame_view.cc (working copy)
@@ -178,10 +178,10 @@
gfx::Point GlassBrowserFrameView::GetSystemMenuPoint() const {
gfx::Point system_menu_point;
if (browser_view_->IsBrowserTypeNormal()) {
- // 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.
+ // The maximized mode bit here is because in maximized mode there is no
+ // client edge, but in restored mode there is one, and unlike in the opaque
+ // frame we don't have a convenient function to get its coordinate (since
+ // FrameBorderThickness() won't do what we want).
system_menu_point.SetPoint(NonClientBorderThickness() -
(frame_->IsMaximized() ? 0 : kClientEdgeThickness),
NonClientTopBorderHeight() + browser_view_->GetTabStripHeight() -
@@ -224,7 +224,8 @@
PaintDistributorLogo(canvas);
PaintToolbarBackground(canvas);
PaintOTRAvatar(canvas);
- PaintClientEdge(canvas);
+ if (!frame_->IsMaximized())
+ PaintRestoredClientEdge(canvas);
}
void GlassBrowserFrameView::Layout() {
@@ -237,16 +238,22 @@
// GlassBrowserFrameView, private:
int GlassBrowserFrameView::FrameBorderThickness() const {
- return GetSystemMetrics(SM_CXSIZEFRAME);
+ return browser_view_->CanCurrentlyResize() ?
+ GetSystemMetrics(SM_CXSIZEFRAME) : 0;
}
int GlassBrowserFrameView::NonClientBorderThickness() const {
- return kNonClientBorderThickness;
+ return browser_view_->CanCurrentlyResize() ? kNonClientBorderThickness : 0;
}
int GlassBrowserFrameView::NonClientTopBorderHeight() const {
- return FrameBorderThickness() +
- (frame_->IsMaximized() ? 0 : kNonClientRestoredExtraThickness);
+ if (browser_view_->IsFullscreen())
+ return 0;
+ // We'd like to use FrameBorderThickness() here, but the maximized Aero glass
+ // frame has a 0 frame border around most edges and a CXSIZEFRAME-thick border
+ // at the top (see AeroGlassFrame::OnGetMinMaxInfo()).
+ return GetSystemMetrics(SM_CXSIZEFRAME) +
+ (browser_view_->IsMaximized() ? 0 : kNonClientRestoredExtraThickness);
}
void GlassBrowserFrameView::PaintDistributorLogo(ChromeCanvas* canvas) {
@@ -294,7 +301,7 @@
otr_avatar_bounds_.width(), otr_avatar_bounds_.height(), false);
}
-void GlassBrowserFrameView::PaintClientEdge(ChromeCanvas* canvas) {
+void GlassBrowserFrameView::PaintRestoredClientEdge(ChromeCanvas* canvas) {
// The client edges start below the toolbar upper corner images regardless
// of how tall the toolbar itself is.
int client_area_top =
« no previous file with comments | « chrome/browser/views/frame/glass_browser_frame_view.h ('k') | chrome/browser/views/frame/opaque_browser_frame_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698