Commit 21809060 authored by Dana Fried's avatar Dana Fried Committed by Commit Bot

Do not anchor zoom bubble to off-screen view on Mac

See bug for details. This was causing e.g. Zoom bubble to display
hanging off the side of the screen and/or partially occluded.

Bug: 1117361
Change-Id: If5f56c29cf96c021934679649a1ec058c33acc19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2365917Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Dana Fried <dfried@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800219}
parent f2976777
...@@ -1613,6 +1613,15 @@ bool BrowserView::IsTabStripEditable() const { ...@@ -1613,6 +1613,15 @@ bool BrowserView::IsTabStripEditable() const {
} }
bool BrowserView::IsToolbarVisible() const { bool BrowserView::IsToolbarVisible() const {
#if defined(OS_MAC)
// This Mac-only preference disables display of the toolbar in fullscreen mode
// so we need to take it into account when determining if the toolbar is
// visible - especially as pertains to anchoring views.
if (IsFullscreen() && !browser()->profile()->GetPrefs()->GetBoolean(
prefs::kShowFullscreenToolbar)) {
return false;
}
#endif
if (immersive_mode_controller_->ShouldHideTopViews()) if (immersive_mode_controller_->ShouldHideTopViews())
return false; return false;
// It's possible to reach here before we've been notified of being added to a // It's possible to reach here before we've been notified of being added to a
......
...@@ -137,8 +137,7 @@ bool IsBrowserFullscreen(Browser* browser) { ...@@ -137,8 +137,7 @@ bool IsBrowserFullscreen(Browser* browser) {
views::View* GetAnchorViewForBrowser(Browser* browser) { views::View* GetAnchorViewForBrowser(Browser* browser) {
BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser); BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
if (!IsBrowserFullscreen(browser) || browser_view->IsToolbarVisible() || if (!IsBrowserFullscreen(browser) || browser_view->IsToolbarVisible() ||
browser_view->immersive_mode_controller()->IsRevealed() || browser_view->immersive_mode_controller()->IsRevealed()) {
browser->app_controller()) {
return browser_view->toolbar_button_provider()->GetAnchorView( return browser_view->toolbar_button_provider()->GetAnchorView(
PageActionIconType::kZoom); PageActionIconType::kZoom);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment