| 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 1ad367d85043aa4f499ab4979925be8f57e149c4..1a0b4244e604e9f895142a320b153c67b2294058 100644
|
| --- a/chrome/browser/ui/views/frame/browser_view.cc
|
| +++ b/chrome/browser/ui/views/frame/browser_view.cc
|
| @@ -998,9 +998,12 @@ void BrowserView::SetFocusToLocationBar(bool select_all) {
|
| if (!force_location_bar_focus_ && !IsActive())
|
| return;
|
|
|
| - // The location bar view must be visible for it to be considered focusable,
|
| - // so always reveal it before testing for focusable.
|
| - immersive_mode_controller_->MaybeStartReveal();
|
| + // Temporarily reveal the top-of-window views (if not already revealed) so
|
| + // that the location bar view is visible and is considered focusable. If the
|
| + // location bar view gains focus, |immersive_mode_controller_| will keep the
|
| + // top-of-window views revealed.
|
| + scoped_ptr<ImmersiveModeController::RevealedLock> focus_reveal_lock(
|
| + immersive_mode_controller_->GetRevealedLock());
|
|
|
| LocationBarView* location_bar = GetLocationBarView();
|
| if (location_bar->IsLocationEntryFocusableInRootView()) {
|
| @@ -1012,8 +1015,6 @@ void BrowserView::SetFocusToLocationBar(bool select_all) {
|
| views::FocusManager* focus_manager = GetFocusManager();
|
| DCHECK(focus_manager);
|
| focus_manager->ClearFocus();
|
| - // The view doesn't need to be revealed after all.
|
| - immersive_mode_controller_->CancelReveal();
|
| }
|
| }
|
|
|
| @@ -1028,19 +1029,23 @@ void BrowserView::UpdateToolbar(content::WebContents* contents,
|
| }
|
|
|
| void BrowserView::FocusToolbar() {
|
| - immersive_mode_controller_->MaybeStartReveal();
|
| + // Temporarily reveal the top-of-window views (if not already revealed) so
|
| + // that the toolbar is visible and is considered focusable. If the
|
| + // toolbar gains focus, |immersive_mode_controller_| will keep the
|
| + // top-of-window views revealed.
|
| + scoped_ptr<ImmersiveModeController::RevealedLock> focus_reveal_lock(
|
| + immersive_mode_controller_->GetRevealedLock());
|
| +
|
| // Start the traversal within the main toolbar. SetPaneFocus stores
|
| // the current focused view before changing focus.
|
| toolbar_->SetPaneFocus(NULL);
|
| }
|
|
|
| void BrowserView::FocusBookmarksToolbar() {
|
| - // Don't use IsBookmarkBarVisible() because that might return false in
|
| - // immersive fullscreen and shifting focus should cause a reveal.
|
| + DCHECK(!immersive_mode_controller_->IsEnabled());
|
| if (bookmark_bar_view_.get() &&
|
| bookmark_bar_view_->visible() &&
|
| bookmark_bar_view_->GetPreferredSize().height() != 0) {
|
| - immersive_mode_controller_->MaybeStartReveal();
|
| bookmark_bar_view_->SetPaneFocus(bookmark_bar_view_.get());
|
| }
|
| }
|
| @@ -1056,7 +1061,7 @@ void BrowserView::FocusAppMenu() {
|
| if (toolbar_->IsAppMenuFocused()) {
|
| RestoreFocus();
|
| } else {
|
| - immersive_mode_controller_->MaybeStartReveal();
|
| + DCHECK(!immersive_mode_controller_->IsEnabled());
|
| toolbar_->SetPaneFocusAndFocusAppMenu();
|
| }
|
| }
|
|
|