diff options
Diffstat (limited to 'chrome/browser/views/frame/opaque_non_client_view.cc')
-rw-r--r-- | chrome/browser/views/frame/opaque_non_client_view.cc | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/chrome/browser/views/frame/opaque_non_client_view.cc b/chrome/browser/views/frame/opaque_non_client_view.cc index a59cd10..7272303 100644 --- a/chrome/browser/views/frame/opaque_non_client_view.cc +++ b/chrome/browser/views/frame/opaque_non_client_view.cc @@ -63,6 +63,10 @@ enum { FRAME_CLIENT_EDGE_BOTTOM_LEFT, FRAME_CLIENT_EDGE_LEFT, + // Popup-mode toolbar edges. + FRAME_TOOLBAR_POPUP_EDGE_LEFT, + FRAME_TOOLBAR_POPUP_EDGE_RIGHT, + FRAME_PART_BITMAP_COUNT // Must be last. }; @@ -98,6 +102,7 @@ class ActiveWindowResources : public views::WindowResources { IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, + IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, 0 }; @@ -149,6 +154,7 @@ class InactiveWindowResources : public views::WindowResources { IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, + IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, 0 }; @@ -200,6 +206,7 @@ class OTRActiveWindowResources : public views::WindowResources { IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, + IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, 0 }; @@ -251,6 +258,7 @@ class OTRInactiveWindowResources : public views::WindowResources { IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, + IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, 0 }; @@ -861,28 +869,30 @@ void OpaqueNonClientView::PaintTitleBar(ChromeCanvas* canvas) { } void OpaqueNonClientView::PaintToolbarBackground(ChromeCanvas* canvas) { - if (!browser_view_->IsToolbarVisible() || - !browser_view_->IsToolbarDisplayModeNormal()) + if (!browser_view_->IsToolbarVisible()) return; - + gfx::Rect toolbar_bounds(browser_view_->GetToolbarBounds()); gfx::Point toolbar_origin(toolbar_bounds.origin()); View::ConvertPointToView(frame_->client_view(), this, &toolbar_origin); toolbar_bounds.set_origin(toolbar_origin); - SkBitmap* toolbar_left = - resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP_LEFT); + bool normal_mode = browser_view_->IsToolbarDisplayModeNormal(); + SkBitmap* toolbar_left = resources()->GetPartBitmap(normal_mode ? + FRAME_CLIENT_EDGE_TOP_LEFT : FRAME_TOOLBAR_POPUP_EDGE_LEFT); canvas->DrawBitmapInt(*toolbar_left, toolbar_bounds.x() - toolbar_left->width(), toolbar_bounds.y()); - SkBitmap* toolbar_center = - resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP); - canvas->TileImageInt(*toolbar_center, toolbar_bounds.x(), toolbar_bounds.y(), - toolbar_bounds.width(), toolbar_center->height()); + if (normal_mode) { + SkBitmap* toolbar_center = + resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP); + canvas->TileImageInt(*toolbar_center, toolbar_bounds.x(), + toolbar_bounds.y(), toolbar_bounds.width(), toolbar_center->height()); + } - canvas->DrawBitmapInt( - *resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP_RIGHT), + canvas->DrawBitmapInt(*resources()->GetPartBitmap(normal_mode ? + FRAME_CLIENT_EDGE_TOP_RIGHT : FRAME_TOOLBAR_POPUP_EDGE_RIGHT), toolbar_bounds.right(), toolbar_bounds.y()); } |