| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/wm/custom_frame_view_ash.h" | 5 #include "ash/wm/custom_frame_view_ash.h" |
| 6 | 6 |
| 7 #include "ash/wm/frame_painter.h" | 7 #include "ash/wm/frame_painter.h" |
| 8 #include "ash/wm/workspace/frame_maximize_button.h" | 8 #include "ash/wm/workspace/frame_maximize_button.h" |
| 9 #include "grit/ash_resources.h" | 9 #include "grit/ash_resources.h" |
| 10 #include "grit/ui_strings.h" // Accessibility names | 10 #include "grit/ui_strings.h" // Accessibility names |
| 11 #include "ui/base/l10n/l10n_util.h" | 11 #include "ui/base/l10n/l10n_util.h" |
| 12 #include "ui/base/resource/resource_bundle.h" | 12 #include "ui/base/resource/resource_bundle.h" |
| 13 #include "ui/compositor/layer_animator.h" | 13 #include "ui/compositor/layer_animator.h" |
| 14 #include "ui/gfx/canvas.h" |
| 14 #include "ui/gfx/font.h" | 15 #include "ui/gfx/font.h" |
| 15 #include "ui/gfx/image/image.h" | 16 #include "ui/gfx/image/image.h" |
| 16 #include "ui/gfx/rect.h" | 17 #include "ui/gfx/rect.h" |
| 17 #include "ui/gfx/size.h" | 18 #include "ui/gfx/size.h" |
| 18 #include "ui/views/controls/button/image_button.h" | 19 #include "ui/views/controls/button/image_button.h" |
| 19 #include "ui/views/widget/native_widget_aura.h" | 20 #include "ui/views/widget/native_widget_aura.h" |
| 20 #include "ui/views/widget/widget.h" | 21 #include "ui/views/widget/widget.h" |
| 21 #include "ui/views/widget/widget_delegate.h" | 22 #include "ui/views/widget/widget_delegate.h" |
| 22 | 23 |
| 23 namespace { | 24 namespace { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 | 122 |
| 122 void CustomFrameViewAsh::Layout() { | 123 void CustomFrameViewAsh::Layout() { |
| 123 // Use the shorter maximized layout headers. | 124 // Use the shorter maximized layout headers. |
| 124 frame_painter_->LayoutHeader(this, true); | 125 frame_painter_->LayoutHeader(this, true); |
| 125 } | 126 } |
| 126 | 127 |
| 127 void CustomFrameViewAsh::OnPaint(gfx::Canvas* canvas) { | 128 void CustomFrameViewAsh::OnPaint(gfx::Canvas* canvas) { |
| 128 if (frame_->IsFullscreen()) | 129 if (frame_->IsFullscreen()) |
| 129 return; | 130 return; |
| 130 | 131 |
| 132 // Prevent bleeding paint onto the client area below the window frame, which |
| 133 // may become visible when the WebContent is transparent. |
| 134 canvas->Save(); |
| 135 canvas->ClipRect(gfx::Rect(0, 0, width(), NonClientTopBorderHeight())); |
| 136 |
| 131 bool paint_as_active = ShouldPaintAsActive(); | 137 bool paint_as_active = ShouldPaintAsActive(); |
| 132 int theme_image_id = paint_as_active ? IDR_AURA_WINDOW_HEADER_BASE_ACTIVE : | 138 int theme_image_id = paint_as_active ? IDR_AURA_WINDOW_HEADER_BASE_ACTIVE : |
| 133 IDR_AURA_WINDOW_HEADER_BASE_INACTIVE; | 139 IDR_AURA_WINDOW_HEADER_BASE_INACTIVE; |
| 134 frame_painter_->PaintHeader( | 140 frame_painter_->PaintHeader( |
| 135 this, | 141 this, |
| 136 canvas, | 142 canvas, |
| 137 paint_as_active ? FramePainter::ACTIVE : FramePainter::INACTIVE, | 143 paint_as_active ? FramePainter::ACTIVE : FramePainter::INACTIVE, |
| 138 theme_image_id, | 144 theme_image_id, |
| 139 NULL); | 145 NULL); |
| 140 frame_painter_->PaintTitleBar(this, canvas, GetTitleFont()); | 146 frame_painter_->PaintTitleBar(this, canvas, GetTitleFont()); |
| 141 frame_painter_->PaintHeaderContentSeparator(this, canvas); | 147 frame_painter_->PaintHeaderContentSeparator(this, canvas); |
| 148 canvas->Restore(); |
| 142 } | 149 } |
| 143 | 150 |
| 144 std::string CustomFrameViewAsh::GetClassName() const { | 151 std::string CustomFrameViewAsh::GetClassName() const { |
| 145 return kViewClassName; | 152 return kViewClassName; |
| 146 } | 153 } |
| 147 | 154 |
| 148 gfx::Size CustomFrameViewAsh::GetMinimumSize() { | 155 gfx::Size CustomFrameViewAsh::GetMinimumSize() { |
| 149 return frame_painter_->GetMinimumSize(this); | 156 return frame_painter_->GetMinimumSize(this); |
| 150 } | 157 } |
| 151 | 158 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 181 if (frame_->IsFullscreen()) | 188 if (frame_->IsFullscreen()) |
| 182 return 0; | 189 return 0; |
| 183 | 190 |
| 184 // Reserve enough space to see the buttons, including any offset from top and | 191 // Reserve enough space to see the buttons, including any offset from top and |
| 185 // reserving space for the separator line. | 192 // reserving space for the separator line. |
| 186 return close_button_->bounds().bottom() + | 193 return close_button_->bounds().bottom() + |
| 187 frame_painter_->HeaderContentSeparatorSize(); | 194 frame_painter_->HeaderContentSeparatorSize(); |
| 188 } | 195 } |
| 189 | 196 |
| 190 } // namespace ash | 197 } // namespace ash |
| OLD | NEW |