Chromium Code Reviews| 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 412423454d98b621eca073b04c0f9fdda1e24a10..627f690b3f5084c32a43465f3630d83794911190 100644 |
| --- a/chrome/browser/ui/views/frame/browser_view.cc |
| +++ b/chrome/browser/ui/views/frame/browser_view.cc |
| @@ -792,6 +792,7 @@ void BrowserView::ExitFullscreen() { |
| #if defined(OS_WIN) |
| ProcessFullscreen(false, GURL(), FEB_TYPE_NONE); |
| #else |
| + fullscreen_request_.pending = false; |
| // On Linux changing fullscreen is async. Ask the window to change it's |
| // fullscreen state, and when done invoke ProcessFullscreen. |
| frame_->SetFullscreen(false); |
| @@ -814,12 +815,15 @@ bool BrowserView::IsFullscreenBubbleVisible() const { |
| } |
| void BrowserView::FullScreenStateChanged() { |
| - bool is_fullscreen = IsFullscreen(); |
| - if (is_fullscreen) { |
| - DCHECK(fullscreen_request_.pending); |
|
yzshen1
2011/10/21 21:45:29
I observed fullscreen state change notification th
koz (OOO until 15th September)
2011/10/24 00:57:05
SGTM.
|
| - fullscreen_request_.pending = false; |
| - ProcessFullscreen(true, fullscreen_request_.url, |
| - fullscreen_request_.bubble_type); |
| + if (IsFullscreen()) { |
| + if (fullscreen_request_.pending) { |
| + fullscreen_request_.pending = false; |
| + ProcessFullscreen(true, fullscreen_request_.url, |
| + fullscreen_request_.bubble_type); |
| + } else { |
| + ProcessFullscreen(true, GURL(), |
| + FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION); |
| + } |
| } else { |
| ProcessFullscreen(false, GURL(), FEB_TYPE_NONE); |
| } |