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 f8e33791e4138ae8df6187252abb3f9dbcbcc68a..492456791a901f1b48b872f4db280382b08b437d 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.cc |
+++ b/chrome/browser/ui/views/frame/browser_view.cc |
@@ -720,8 +720,16 @@ void BrowserView::UpdateTitleBar() { |
void BrowserView::BookmarkBarStateChanged( |
BookmarkBar::AnimateChangeType change_type) { |
if (bookmark_bar_view_.get()) { |
- bookmark_bar_view_->SetBookmarkBarState( |
- browser_->bookmark_bar_state(), change_type); |
+ BookmarkBar::State new_state = browser_->bookmark_bar_state(); |
+ |
+ // We don't properly support animating the bookmark bar to and from the |
+ // detached state in immersive fullscreen. |
+ bool detached_changed = (new_state == BookmarkBar::DETACHED) || |
+ bookmark_bar_view_->IsDetached(); |
+ if (detached_changed && immersive_mode_controller_->IsEnabled()) |
+ change_type = BookmarkBar::DONT_ANIMATE_STATE_CHANGE; |
+ |
+ bookmark_bar_view_->SetBookmarkBarState(new_state, change_type); |
} |
if (MaybeShowBookmarkBar(GetActiveWebContents())) |
Layout(); |
@@ -2131,7 +2139,7 @@ bool BrowserView::MaybeShowBookmarkBar(WebContents* contents) { |
bool needs_layout = false; |
views::View* new_parent = NULL; |
if (show_bookmark_bar) { |
- if (browser_->bookmark_bar_state() == BookmarkBar::DETACHED) |
+ if (bookmark_bar_view_->IsDetached()) |
new_parent = this; |
else |
new_parent = top_container_; |