| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/ui/views/frame/browser_non_client_frame_view_mus.h" | 5 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
| 10 #include "chrome/browser/extensions/extension_util.h" | 10 #include "chrome/browser/extensions/extension_util.h" |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 | 369 |
| 370 void BrowserNonClientFrameViewMus::TabStripMaxXChanged(TabStrip* tab_strip) { | 370 void BrowserNonClientFrameViewMus::TabStripMaxXChanged(TabStrip* tab_strip) { |
| 371 UpdateClientArea(); | 371 UpdateClientArea(); |
| 372 } | 372 } |
| 373 | 373 |
| 374 void BrowserNonClientFrameViewMus::TabStripDeleted(TabStrip* tab_strip) { | 374 void BrowserNonClientFrameViewMus::TabStripDeleted(TabStrip* tab_strip) { |
| 375 tab_strip_->RemoveObserver(this); | 375 tab_strip_->RemoveObserver(this); |
| 376 tab_strip_ = nullptr; | 376 tab_strip_ = nullptr; |
| 377 } | 377 } |
| 378 | 378 |
| 379 bool BrowserNonClientFrameViewMus::DoesIntersectRect( | |
| 380 const views::View* target, | |
| 381 const gfx::Rect& rect) const { | |
| 382 CHECK_EQ(target, this); | |
| 383 if (!views::ViewTargeterDelegate::DoesIntersectRect(this, rect)) { | |
| 384 // |rect| is outside BrowserNonClientFrameViewMus's bounds. | |
| 385 return false; | |
| 386 } | |
| 387 | |
| 388 if (!browser_view()->IsTabStripVisible()) { | |
| 389 // Claim |rect| if it is above the top of the topmost client area view. | |
| 390 return rect.y() < GetTopInset(false); | |
| 391 } | |
| 392 | |
| 393 // Claim |rect| only if it is above the bottom of the tabstrip in a non-tab | |
| 394 // portion. In particular, the avatar label/button is left of the tabstrip and | |
| 395 // the window controls are right of the tabstrip. | |
| 396 TabStrip* tabstrip = browser_view()->tabstrip(); | |
| 397 gfx::RectF rect_in_tabstrip_coords_f(rect); | |
| 398 View::ConvertRectToTarget(this, tabstrip, &rect_in_tabstrip_coords_f); | |
| 399 const gfx::Rect rect_in_tabstrip_coords = | |
| 400 gfx::ToEnclosingRect(rect_in_tabstrip_coords_f); | |
| 401 return (rect_in_tabstrip_coords.y() <= tabstrip->height()) && | |
| 402 (!tabstrip->HitTestRect(rect_in_tabstrip_coords) || | |
| 403 tabstrip->IsRectInWindowCaption(rect_in_tabstrip_coords)); | |
| 404 } | |
| 405 | |
| 406 int BrowserNonClientFrameViewMus::GetTabStripLeftInset() const { | 379 int BrowserNonClientFrameViewMus::GetTabStripLeftInset() const { |
| 407 const gfx::Insets insets(GetLayoutInsets(AVATAR_ICON)); | 380 const gfx::Insets insets(GetLayoutInsets(AVATAR_ICON)); |
| 408 const int avatar_right = profile_indicator_icon() | 381 const int avatar_right = profile_indicator_icon() |
| 409 ? (insets.left() + GetIncognitoAvatarIcon().width()) | 382 ? (insets.left() + GetIncognitoAvatarIcon().width()) |
| 410 : 0; | 383 : 0; |
| 411 return avatar_right + insets.right() + frame_values().normal_insets.left(); | 384 return avatar_right + insets.right() + frame_values().normal_insets.left(); |
| 412 } | 385 } |
| 413 | 386 |
| 414 int BrowserNonClientFrameViewMus::GetTabStripRightInset() const { | 387 int BrowserNonClientFrameViewMus::GetTabStripRightInset() const { |
| 415 const int frame_right_insets = frame_values().normal_insets.right() + | 388 const int frame_right_insets = frame_values().normal_insets.right() + |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 } | 589 } |
| 617 | 590 |
| 618 void BrowserNonClientFrameViewMus::PaintContentEdge(gfx::Canvas* canvas) { | 591 void BrowserNonClientFrameViewMus::PaintContentEdge(gfx::Canvas* canvas) { |
| 619 DCHECK(!UsePackagedAppHeaderStyle() && !UseWebAppHeaderStyle()); | 592 DCHECK(!UsePackagedAppHeaderStyle() && !UseWebAppHeaderStyle()); |
| 620 const int bottom = frame_values().normal_insets.bottom(); | 593 const int bottom = frame_values().normal_insets.bottom(); |
| 621 canvas->FillRect( | 594 canvas->FillRect( |
| 622 gfx::Rect(0, bottom, width(), kClientEdgeThickness), | 595 gfx::Rect(0, bottom, width(), kClientEdgeThickness), |
| 623 GetThemeProvider()->GetColor( | 596 GetThemeProvider()->GetColor( |
| 624 ThemeProperties::COLOR_TOOLBAR_BOTTOM_SEPARATOR)); | 597 ThemeProperties::COLOR_TOOLBAR_BOTTOM_SEPARATOR)); |
| 625 } | 598 } |
| OLD | NEW |