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

Unified Diff: chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc

Issue 1780333006: Check for null |tabstrip_| in BrowserView::IsTabStripVisible() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DoesIntersectRect() implementations Created 4 years, 9 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/ui/views/frame/browser_non_client_frame_view_mus.cc
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
index f6d60c8c5d9ff23eece0a803aa3bdb528785dec1..e15e22784b6a1d884836ef473b4c77db6df12457 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
@@ -388,24 +388,26 @@ bool BrowserNonClientFrameViewMus::DoesIntersectRect(
return false;
}
+ if (!browser_view()->IsTabStripVisible()) {
+ // Claim |rect| if it is above the top of the topmost client area view.
+ return rect.y() < GetTopInset(false);
+ }
+
+ // Claim |rect| only if it is above the bottom of the tabstrip in a non-tab
+ // portion. In particular, the avatar label/button is left of the tabstrip and
+ // the window controls are right of the tabstrip.
TabStrip* tabstrip = browser_view()->tabstrip();
- if (tabstrip && browser_view()->IsTabStripVisible()) {
- // Claim |rect| only if it is above the bottom of the tabstrip in a non-tab
- // portion.
- gfx::RectF rect_in_tabstrip_coords_f(rect);
- View::ConvertRectToTarget(this, tabstrip, &rect_in_tabstrip_coords_f);
- gfx::Rect rect_in_tabstrip_coords =
- gfx::ToEnclosingRect(rect_in_tabstrip_coords_f);
-
- if (rect_in_tabstrip_coords.y() > tabstrip->height())
- return false;
-
- return !tabstrip->HitTestRect(rect_in_tabstrip_coords) ||
- tabstrip->IsRectInWindowCaption(rect_in_tabstrip_coords);
+ gfx::RectF rect_in_tabstrip_coords_f(rect);
+ View::ConvertRectToTarget(this, tabstrip, &rect_in_tabstrip_coords_f);
+ const gfx::Rect rect_in_tabstrip_coords =
+ gfx::ToEnclosingRect(rect_in_tabstrip_coords_f);
+ if (rect_in_tabstrip_coords.y() > tabstrip->height()) {
+ // |rect| is entirely below the tabstrip.
+ return false;
}
- // Claim |rect| if it is above the top of the topmost view in the client area.
- return rect.y() < GetTopInset(false);
+ return !tabstrip->HitTestRect(rect_in_tabstrip_coords) ||
+ tabstrip->IsRectInWindowCaption(rect_in_tabstrip_coords);
}
int BrowserNonClientFrameViewMus::GetTabStripLeftInset() const {

Powered by Google App Engine
This is Rietveld 408576698