Chromium Code Reviews| Index: chrome/browser/ui/fullscreen_controller.cc |
| diff --git a/chrome/browser/ui/fullscreen_controller.cc b/chrome/browser/ui/fullscreen_controller.cc |
| index 1280bc3e60b8ca9b3e44dbc314bf6c058ce824ca..e2bf1b68d588dd78a6c195bfcf20af748798a944 100644 |
| --- a/chrome/browser/ui/fullscreen_controller.cc |
| +++ b/chrome/browser/ui/fullscreen_controller.cc |
| @@ -63,16 +63,18 @@ bool FullscreenController::IsMouseLockRequested() const { |
| } |
| bool FullscreenController::IsMouseLocked() const { |
| - return mouse_lock_state_ == MOUSELOCK_ACCEPTED; |
| + return mouse_lock_state_ == MOUSELOCK_ACCEPTED |
| + || mouse_lock_state_ == MOUSELOCK_ACCEPTED_SILENT; |
| } |
| void FullscreenController::RequestToLockMouse(WebContents* tab, |
| - bool user_gesture) { |
| + bool user_gesture, bool after_unlocked_by_target) { |
| DCHECK(!IsMouseLocked()); |
| NotifyMouseLockChange(); |
| // Must have a user gesture, or we must already be in tab fullscreen. |
|
scheib
2012/05/26 01:12:34
Update comment, e.g.:
Must have a user gesture to
dmurph
2012/05/30 00:17:51
ok
|
| - if (!user_gesture && !IsFullscreenForTabOrPending(tab)) { |
| + if (!after_unlocked_by_target && !user_gesture |
| + && !IsFullscreenForTabOrPending(tab)) { |
| tab->GotResponseToLockMouseRequest(false); |
| return; |
| } |
| @@ -89,7 +91,11 @@ void FullscreenController::RequestToLockMouse(WebContents* tab, |
| } else { |
| // Lock mouse. |
| if (tab->GotResponseToLockMouseRequest(true)) { |
| - mouse_lock_state_ = MOUSELOCK_ACCEPTED; |
| + if (after_unlocked_by_target) { |
| + mouse_lock_state_ = MOUSELOCK_ACCEPTED_SILENT; |
| + } else { |
| + mouse_lock_state_ = MOUSELOCK_ACCEPTED; |
| + } |
| } else { |
| mouse_lock_tab_ = NULL; |
| mouse_lock_state_ = MOUSELOCK_NOT_REQUESTED; |
| @@ -390,6 +396,10 @@ FullscreenExitBubbleType FullscreenController::GetFullscreenExitBubbleType() |
| kiosk = CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode); |
| #endif |
| + if(mouse_lock_state_ == MOUSELOCK_ACCEPTED_SILENT) { |
| + return FEB_TYPE_NONE; |
| + } |
| + |
| if (fullscreened_tab_) { |
| if (tab_fullscreen_accepted_) { |
| if (IsMouseLocked()) { |