Chromium Code Reviews| Index: chrome/browser/ui/browser.cc |
| diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
| index 9a24b1b696ae61b6a5d43deb79c67a8b0dcb21fc..08b6b3c2d0627f9150e61983de2292261302b71d 100644 |
| --- a/chrome/browser/ui/browser.cc |
| +++ b/chrome/browser/ui/browser.cc |
| @@ -3797,25 +3797,48 @@ void Browser::ToggleFullscreenModeForTab(TabContents* tab, |
| bool enter_fullscreen) { |
| if (tab != GetSelectedTabContents()) |
| return; |
| - fullscreened_tab_ = enter_fullscreen ? |
| - TabContentsWrapper::GetCurrentWrapperForContents(tab) : NULL; |
| - bool in_correct_mode_for_tab_fullscreen; |
| + |
| + if (enter_fullscreen) { |
| + fullscreened_tab_ = TabContentsWrapper::GetCurrentWrapperForContents(tab); |
| + bool in_correct_mode_for_tab_fullscreen; |
| #if defined(OS_MACOSX) |
| - in_correct_mode_for_tab_fullscreen = window_->InPresentationMode(); |
| + in_correct_mode_for_tab_fullscreen = window_->InPresentationMode(); |
| #else |
| - in_correct_mode_for_tab_fullscreen = window_->IsFullscreen(); |
| + in_correct_mode_for_tab_fullscreen = window_->IsFullscreen(); |
| #endif |
| - if (enter_fullscreen && !in_correct_mode_for_tab_fullscreen) |
| - tab_caused_fullscreen_ = true; |
| + if (!in_correct_mode_for_tab_fullscreen) |
| + tab_caused_fullscreen_ = true; |
|
sky
2011/09/28 22:58:04
Does this need to be reset for the if (!enter_full
koz (OOO until 15th September)
2011/09/29 04:13:07
It should get reset by the call to Toggle{Presenta
yzshen1
2011/09/29 20:41:04
Yes. If currently fullscreen mode is on, Toggle{Pr
|
| + } |
| + |
| if (tab_caused_fullscreen_) { |
| #if defined(OS_MACOSX) |
| TogglePresentationMode(); |
| #else |
| ToggleFullscreenMode(); |
| #endif |
| + } else if (!enter_fullscreen) { |
| + // If currently there is a tab in "tab fullscreen" mode and fullscreen was |
| + // not caused by it (i.e., previously it was in "browser fullscreen" mode), |
| + // we need to switch back to "browser fullscreen" mode. In this case, all we |
| + // have to do is notifying the tab that it has exited "tab fullscreen" mode. |
| + NotifyTabOfFullscreenExitIfNecessary(); |
| } |
| } |
| +bool Browser::IsFullscreenForTab(const TabContents* tab) const { |
| + const TabContentsWrapper* wrapper = |
| + TabContentsWrapper::GetCurrentWrapperForContents(tab); |
| + bool result = wrapper && wrapper == fullscreened_tab_; |
| + DCHECK(!result || tab == GetSelectedTabContents()); |
| +#if defined(OS_MACOSX) |
| + DCHECK(!result || window_->InPresentationMode()); |
| +#else |
| + DCHECK(!result || window_->IsFullscreen()); |
| +#endif |
| + |
| + return result; |
| +} |
| + |
| void Browser::JSOutOfMemory(TabContents* tab) { |
| JSOutOfMemoryHelper(tab); |
| } |