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

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

Issue 1036173002: Animate showing / hiding the location bar for bookmark apps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix stuffup Created 5 years, 8 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_view.cc
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index eab84aa107b11cbfc1da3519e6bc3b2499fbdd8f..90c877a464b82da76e1e0831beb8fb6b733e74c4 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -1035,44 +1035,6 @@ void BrowserView::FullscreenStateChanged() {
EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE);
}
-void BrowserView::ToolbarSizeChanged(bool is_animating) {
- // The call to SetMaxTopArrowHeight() below can result in reentrancy;
- // |call_state| tracks whether we're reentrant. We can't just early-return in
- // this case because we need to layout again so the infobar container's bounds
- // are set correctly.
- static CallState call_state = NORMAL;
-
- // A reentrant call can (and should) use the fast resize path unless both it
- // and the normal call are both non-animating.
- bool use_fast_resize =
- is_animating || (call_state == REENTRANT_FORCE_FAST_RESIZE);
- if (use_fast_resize)
- contents_web_view_->SetFastResize(true);
- UpdateUIForContents(GetActiveWebContents());
- if (use_fast_resize)
- contents_web_view_->SetFastResize(false);
-
- // Inform the InfoBarContainer that the distance to the location icon may have
- // changed. We have to do this after the block above so that the toolbars are
- // laid out correctly for calculating the maximum arrow height below.
- {
- base::AutoReset<CallState> resetter(&call_state,
- is_animating ? REENTRANT_FORCE_FAST_RESIZE : REENTRANT);
- SetMaxTopArrowHeight(GetMaxTopInfoBarArrowHeight(), infobar_container_);
- }
-
- // When transitioning from animating to not animating we need to make sure the
- // contents_container_ gets layed out. If we don't do this and the bounds
- // haven't changed contents_container_ won't get a Layout out and we'll end up
- // with a gray rect because the clip wasn't updated. Note that a reentrant
- // call never needs to do this, because after it returns, the normal call
- // wrapping it will do it.
- if ((call_state == NORMAL) && !is_animating) {
- contents_web_view_->InvalidateLayout();
- contents_container_->Layout();
- }
-}
-
LocationBar* BrowserView::GetLocationBar() const {
return GetLocationBarView();
}
@@ -1139,6 +1101,44 @@ void BrowserView::FocusToolbar() {
toolbar_->SetPaneFocus(nullptr);
}
+void BrowserView::ToolbarSizeChanged(bool is_animating) {
+ // The call to SetMaxTopArrowHeight() below can result in reentrancy;
+ // |call_state| tracks whether we're reentrant. We can't just early-return in
+ // this case because we need to layout again so the infobar container's bounds
+ // are set correctly.
+ static CallState call_state = NORMAL;
+
+ // A reentrant call can (and should) use the fast resize path unless both it
+ // and the normal call are both non-animating.
+ bool use_fast_resize =
+ is_animating || (call_state == REENTRANT_FORCE_FAST_RESIZE);
+ if (use_fast_resize)
+ contents_web_view_->SetFastResize(true);
+ UpdateUIForContents(GetActiveWebContents());
+ if (use_fast_resize)
+ contents_web_view_->SetFastResize(false);
+
+ // Inform the InfoBarContainer that the distance to the location icon may have
+ // changed. We have to do this after the block above so that the toolbars are
+ // laid out correctly for calculating the maximum arrow height below.
+ {
+ base::AutoReset<CallState> resetter(&call_state,
+ is_animating ? REENTRANT_FORCE_FAST_RESIZE : REENTRANT);
+ SetMaxTopArrowHeight(GetMaxTopInfoBarArrowHeight(), infobar_container_);
+ }
+
+ // When transitioning from animating to not animating we need to make sure the
+ // contents_container_ gets layed out. If we don't do this and the bounds
+ // haven't changed contents_container_ won't get a Layout out and we'll end up
+ // with a gray rect because the clip wasn't updated. Note that a reentrant
+ // call never needs to do this, because after it returns, the normal call
+ // wrapping it will do it.
+ if ((call_state == NORMAL) && !is_animating) {
+ contents_web_view_->InvalidateLayout();
+ contents_container_->Layout();
+ }
+}
+
void BrowserView::FocusBookmarksToolbar() {
DCHECK(!immersive_mode_controller_->IsEnabled());
if (bookmark_bar_view_.get() &&
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.h ('k') | chrome/browser/ui/views/location_bar/location_bar_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698