Modified: branches/safari-534-branch/Source/WebCore/ChangeLog (87563 => 87564)
--- branches/safari-534-branch/Source/WebCore/ChangeLog 2011-05-27 21:10:29 UTC (rev 87563)
+++ branches/safari-534-branch/Source/WebCore/ChangeLog 2011-05-27 21:12:38 UTC (rev 87564)
@@ -1,5 +1,24 @@
2011-05-27 Mark Rowe <mr...@apple.com>
+ Merge r87442.
+
+ 2011-05-26 Jeff Miller <je...@apple.com>
+
+ Reviewed by Steve Falkenburg.
+
+ Fullscreen content is sometimes obscured by taskbar (which even covers up the "exit fullscreen" button)
+ https://bugs.webkit.org/show_bug.cgi?id=61569
+ <rdar://problem/9454315>
+
+ Normally, when the background fullscreen window is animated in, the Windows taskbar will be hidden, but this doesn't always work for some reason.
+ Workaround this issue by setting the real fullscreen window to be a topmost window.
+
+ * platform/graphics/win/FullScreenController.cpp:
+ (FullScreenController::Private::fullscreenClientWndProc): Exit fullscreen when m_fullScreenWindow is deactivated.
+ (FullScreenController::enterFullScreenRepaintCompleted): Make m_fullScreenWindow a topmost window before animating it in to ensure the taskbar is hidden.
+
+2011-05-27 Mark Rowe <mr...@apple.com>
+
Merge r87335.
2011-05-25 Mark Rowe <mr...@apple.com>
Modified: branches/safari-534-branch/Source/WebCore/platform/graphics/win/FullScreenController.cpp (87563 => 87564)
--- branches/safari-534-branch/Source/WebCore/platform/graphics/win/FullScreenController.cpp 2011-05-27 21:10:29 UTC (rev 87563)
+++ branches/safari-534-branch/Source/WebCore/platform/graphics/win/FullScreenController.cpp 2011-05-27 21:12:38 UTC (rev 87564)
@@ -84,6 +84,11 @@
if (m_client->fullScreenClientWindow())
::SetWindowPos(m_client->fullScreenClientWindow(), 0, 0, 0, m_fullScreenFrame.width(), m_fullScreenFrame.height(), SWP_NOREPOSITION | SWP_NOMOVE);
break;
+ case WM_ACTIVATE:
+ // Because m_fullScreenWindow is a topmost window, we need to exit full screen explicitly when it's deactivated.
+ if (!wParam && m_fullScreenWindow && (hwnd == m_fullScreenWindow->hwnd()))
+ m_controller->exitFullScreen();
+ break;
case WM_KEYDOWN:
if (wParam == VK_ESCAPE) {
m_controller->exitFullScreen();
@@ -152,6 +157,9 @@
return;
m_private->m_isEnteringFullScreen = false;
+ // Normally, when the background fullscreen window is animated in, the Windows taskbar will be hidden, but this doesn't always work for some reason.
+ // Setting the real fullscreen window to be a topmost window will force the taskbar to be hidden when we call AnimateWindow() below if it wasn't before.
+ ::SetWindowPos(m_private->m_fullScreenWindow->hwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
::AnimateWindow(m_private->m_fullScreenWindow->hwnd(), kFullScreenAnimationDuration, AW_BLEND | AW_ACTIVATE);
}