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

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

Issue 14080005: Remove ImmersiveModeController::MaybeStartReveal() / ImmersiveModeController::CancelReveal() (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebased Created 7 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 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();
}
}

Powered by Google App Engine
This is Rietveld 408576698