Title: [194593] trunk/Source/WebKit2
Revision
194593
Author
[email protected]
Date
2016-01-05 11:38:13 -0800 (Tue, 05 Jan 2016)

Log Message

[Mac] Exiting fullscreen via Mission Control leaves fullcreen window frontmost on desktop
https://bugs.webkit.org/show_bug.cgi?id=152733

Reviewed by Eric Carlson.

Rather than ignore -windowDidExitFullScreen: notifications when fullscreen exit was
not initiated by WebKit (and the -window:startCustomAnimationToEnterFullScreenWithDuration:
method was not called), continue to exit fullscreen normally.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (194592 => 194593)


--- trunk/Source/WebKit2/ChangeLog	2016-01-05 19:24:23 UTC (rev 194592)
+++ trunk/Source/WebKit2/ChangeLog	2016-01-05 19:38:13 UTC (rev 194593)
@@ -1,3 +1,17 @@
+2016-01-05  Jer Noble  <[email protected]>
+
+        [Mac] Exiting fullscreen via Mission Control leaves fullcreen window frontmost on desktop
+        https://bugs.webkit.org/show_bug.cgi?id=152733
+
+        Reviewed by Eric Carlson.
+
+        Rather than ignore -windowDidExitFullScreen: notifications when fullscreen exit was
+        not initiated by WebKit (and the -window:startCustomAnimationToEnterFullScreenWithDuration:
+        method was not called), continue to exit fullscreen normally.
+
+        * UIProcess/mac/WKFullScreenWindowController.mm:
+        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
+
 2016-01-05  Alex Christensen  <[email protected]>
 
         Clean up download code

Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm (194592 => 194593)


--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2016-01-05 19:24:23 UTC (rev 194592)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2016-01-05 19:38:13 UTC (rev 194593)
@@ -373,8 +373,15 @@
 
 - (void)finishedExitFullScreenAnimation:(bool)completed
 {
-    if (_fullScreenState != ExitingFullScreen)
-        return;
+    if (_fullScreenState != ExitingFullScreen) {
+        // If we are not currently in the ExitingFullScreen state, this notification is unexpected, meaning
+        // fullscreen was exited without being initiated by WebKit. Do not return early, but continue to
+        // clean up our state by calling those methods which would have been called by -exitFullscreen,
+        // and proceed to close the fullscreen window.
+        [_webViewPlaceholder setTarget:nil];
+        [self _manager]->setAnimatingFullScreen(false);
+        [self _manager]->willExitFullScreen();
+    }
     _fullScreenState = NotInFullScreen;
 
     // Screen updates to be re-enabled in completeFinishExitFullScreenAnimationAfterRepaint.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to