REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 15 Jul 2011 20:03:54 +0000 (20:03 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 15 Jul 2011 20:03:54 +0000 (20:03 +0000)
https://bugs.webkit.org/show_bug.cgi?id=64615

Reviewed by Anders Carlsson.

Source/WebCore:

* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::enteredFullscreen): Hide the mouse cursor immediately when
entering full screen.
(WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired): Hide the mouse cursor when
hiding the HUD.
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::setCursorHiddenUntilMouseMoves): Added empty implementation.
* page/Chrome.cpp:
(WebCore::Chrome::setCursorHiddenUntilMouseMoves): Added. Calls through to the client.
* page/Chrome.h:
* page/ChromeClient.h:
* platform/HostWindow.h:

Source/WebKit/chromium:

* src/ChromeClientImpl.cpp:
(WebKit::ChromeClientImpl::setCursorHiddenUntilMouseMoves): Added this stub.
* src/ChromeClientImpl.h:

Source/WebKit/efl:

* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::setCursorHiddenUntilMouseMoves): Added this stub.
* WebCoreSupport/ChromeClientEfl.h:

Source/WebKit/gtk:

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::setCursorHiddenUntilMouseMoves): Added this stub.
* WebCoreSupport/ChromeClientGtk.h:

Source/WebKit/haiku:

* WebCoreSupport/ChromeClientHaiku.cpp:
(WebCore::ChromeClientHaiku::setCursorHiddenUntilMouseMoves): Added this stub.
* WebCoreSupport/ChromeClientHaiku.h:

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::setCursorHiddenUntilMouseMoves): Added. Calls
+[NSCursor setHiddenUntilMouseMoves:].

Source/WebKit/qt:

* WebCoreSupport/ChromeClientQt.h:
(WebCore::ChromeClientQt::setCursorHiddenUntilMouseMoves): Added this stub.

Source/WebKit/win:

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::setCursorHiddenUntilMouseMoves): Added this stub.
* WebCoreSupport/WebChromeClient.h:

Source/WebKit/wince:

* WebCoreSupport/ChromeClientWinCE.cpp:
(WebKit::ChromeClientWinCE::setCursorHiddenUntilMouseMoves): Added this stub.
* WebCoreSupport/ChromeClientWinCE.h:

Source/WebKit/wx:

* WebKitSupport/ChromeClientWx.h:
(WebCore::ChromeClientWx::setCursorHiddenUntilMouseMoves): Added this stub.

Source/WebKit2:

* UIProcess/API/efl/PageClientImpl.cpp:
(WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Added this stub.
* UIProcess/API/efl/PageClientImpl.h:
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Ditto.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Added. Calls +[NSCursor setHiddenUntilMouseMoves:].
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCursorHiddenUntilMouseMoves): Added. Calls through to the PageClient.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Added SetCursorHiddenUntilMouseMoves message.
* UIProcess/win/WebView.cpp:
(WebKit::WebView::setCursorHiddenUntilMouseMoves): Added this stub.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::setCursorHiddenUntilMouseMoves): Added. Sends SetCursorHiddenUntilMouseMoves message
to the page proxy.
* WebProcess/WebCoreSupport/WebChromeClient.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@91097 268f45cc-cd09-0410-ab3c-d52691b4dbfc

46 files changed:
Source/WebCore/ChangeLog
Source/WebCore/html/shadow/MediaControlRootElement.cpp
Source/WebCore/loader/EmptyClients.h
Source/WebCore/page/Chrome.cpp
Source/WebCore/page/Chrome.h
Source/WebCore/page/ChromeClient.h
Source/WebCore/platform/HostWindow.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/ChromeClientImpl.cpp
Source/WebKit/chromium/src/ChromeClientImpl.h
Source/WebKit/efl/ChangeLog
Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
Source/WebKit/gtk/ChangeLog
Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
Source/WebKit/haiku/ChangeLog
Source/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
Source/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebCoreSupport/WebChromeClient.h
Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm
Source/WebKit/qt/ChangeLog
Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h
Source/WebKit/win/ChangeLog
Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp
Source/WebKit/win/WebCoreSupport/WebChromeClient.h
Source/WebKit/wince/ChangeLog
Source/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp
Source/WebKit/wince/WebCoreSupport/ChromeClientWinCE.h
Source/WebKit/wx/ChangeLog
Source/WebKit/wx/WebKitSupport/ChromeClientWx.h
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
Source/WebKit2/UIProcess/API/efl/PageClientImpl.h
Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp
Source/WebKit2/UIProcess/API/gtk/PageClientImpl.h
Source/WebKit2/UIProcess/API/mac/PageClientImpl.h
Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm
Source/WebKit2/UIProcess/PageClient.h
Source/WebKit2/UIProcess/WebPageProxy.cpp
Source/WebKit2/UIProcess/WebPageProxy.h
Source/WebKit2/UIProcess/WebPageProxy.messages.in
Source/WebKit2/UIProcess/win/WebView.cpp
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h

index aff529a..0d8b676 100644 (file)
@@ -1,3 +1,23 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * html/shadow/MediaControlRootElement.cpp:
+        (WebCore::MediaControlRootElement::enteredFullscreen): Hide the mouse cursor immediately when
+        entering full screen.
+        (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired): Hide the mouse cursor when
+        hiding the HUD.
+        * loader/EmptyClients.h:
+        (WebCore::EmptyChromeClient::setCursorHiddenUntilMouseMoves): Added empty implementation.
+        * page/Chrome.cpp:
+        (WebCore::Chrome::setCursorHiddenUntilMouseMoves): Added. Calls through to the client.
+        * page/Chrome.h:
+        * page/ChromeClient.h:
+        * platform/HostWindow.h:
+
 2011-07-14  Gavin Barraclough  <barraclough@apple.com>
 
         https://bugs.webkit.org/show_bug.cgi?id=64250
index 2822ba4..1c185f8 100644 (file)
@@ -29,6 +29,7 @@
 #if ENABLE(VIDEO)
 #include "MediaControlRootElement.h"
 
+#include "Chrome.h"
 #include "MediaControlElements.h"
 #include "MouseEvent.h"
 #include "Page.h"
@@ -453,6 +454,9 @@ void MediaControlRootElement::enteredFullscreen()
 
     m_panel->setCanBeDragged(true);
 
+    if (Page* page = m_mediaElement->document()->page())
+        page->chrome()->setCursorHiddenUntilMouseMoves(true);
+
     startHideFullscreenControlsTimer();
 }
 
@@ -547,7 +551,10 @@ void MediaControlRootElement::hideFullscreenControlsTimerFired(Timer<MediaContro
     
     if (!shouldHideControls())
         return;
-    
+
+    if (Page* page = m_mediaElement->document()->page())
+        page->chrome()->setCursorHiddenUntilMouseMoves(true);
+
     makeTransparent();
 }
 
index f1fae92..785b12c 100644 (file)
@@ -205,6 +205,7 @@ public:
     virtual void elementDidBlur(const Node*) { }
 
     virtual void setCursor(const Cursor&) { }
+    virtual void setCursorHiddenUntilMouseMoves(bool) { }
 
     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {}
 
index 7ede62c..484ca81 100644 (file)
@@ -487,6 +487,11 @@ void Chrome::setCursor(const Cursor& cursor)
     m_client->setCursor(cursor);
 }
 
+void Chrome::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
+{
+    m_client->setCursorHiddenUntilMouseMoves(hiddenUntilMouseMoves);
+}
+
 #if ENABLE(REQUEST_ANIMATION_FRAME)
 void Chrome::scheduleAnimation()
 {
index d9ae0de..12b9f54 100644 (file)
@@ -78,6 +78,8 @@ namespace WebCore {
         virtual PlatformPageClient platformPageClient() const;
         virtual void scrollbarsModeDidChange() const;
         virtual void setCursor(const Cursor&);
+        virtual void setCursorHiddenUntilMouseMoves(bool);
+
 #if ENABLE(REQUEST_ANIMATION_FRAME)
         virtual void scheduleAnimation();
 #endif
index 434fc75..d5e6d7b 100644 (file)
@@ -156,6 +156,7 @@ namespace WebCore {
         virtual PlatformPageClient platformPageClient() const = 0;
         virtual void scrollbarsModeDidChange() const = 0;
         virtual void setCursor(const Cursor&) = 0;
+        virtual void setCursorHiddenUntilMouseMoves(bool) = 0;
 #if ENABLE(REQUEST_ANIMATION_FRAME)
         virtual void scheduleAnimation() = 0;
 #endif
index 316f043..1b8b932 100644 (file)
@@ -68,6 +68,8 @@ public:
     // Request that the cursor change.
     virtual void setCursor(const Cursor&) = 0;
 
+    virtual void setCursorHiddenUntilMouseMoves(bool) = 0;
+
 #if ENABLE(REQUEST_ANIMATION_FRAME)
     virtual void scheduleAnimation() = 0;
 #endif
index 4045831..8bf9c16 100644 (file)
@@ -1,3 +1,14 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::setCursorHiddenUntilMouseMoves): Added this stub.
+        * src/ChromeClientImpl.h:
+
 2011-07-14  Ryosuke Niwa  <rniwa@webkit.org>
 
         Rolled Chromium revision to 92606.
index 0182178..a3e9b0f 100644 (file)
@@ -755,6 +755,11 @@ void ChromeClientImpl::setCursor(const WebCore::Cursor& cursor)
     setCursor(WebCursorInfo(cursor));
 }
 
+void ChromeClientImpl::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void ChromeClientImpl::setCursor(const WebCursorInfo& cursor)
 {
     if (m_webView->client())
index 6e79aee..5234e43 100644 (file)
@@ -144,6 +144,7 @@ public:
     virtual void enumerateChosenDirectory(WebCore::FileChooser*);
 #endif
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
     virtual void formStateDidChange(const WebCore::Node*);
 #if ENABLE(TOUCH_EVENTS)
     // FIXME: All touch events are forwarded regardless of whether or not they are needed.
index 683a417..83a57d5 100755 (executable)
@@ -1,3 +1,14 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/ChromeClientEfl.cpp:
+        (WebCore::ChromeClientEfl::setCursorHiddenUntilMouseMoves): Added this stub.
+        * WebCoreSupport/ChromeClientEfl.h:
+
 2011-07-14  Jaehun Lim  <ljaehun.lim@samsung.com>
 
         Reviewed by Adam Barth.
index 3fdf1bd..71576f7 100644 (file)
@@ -452,6 +452,11 @@ void ChromeClientEfl::setCursor(const Cursor&)
     notImplemented();
 }
 
+void ChromeClientEfl::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void ChromeClientEfl::requestGeolocationPermissionForFrame(Frame*, Geolocation*)
 {
     // See the comment in WebCore/page/ChromeClient.h
index e249298..1e79caf 100644 (file)
@@ -137,6 +137,7 @@ public:
     virtual void formStateDidChange(const Node*);
 
     virtual void setCursor(const Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
 
     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const { }
 
index 5946390..b7da20c 100644 (file)
@@ -1,3 +1,14 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/ChromeClientGtk.cpp:
+        (WebKit::ChromeClient::setCursorHiddenUntilMouseMoves): Added this stub.
+        * WebCoreSupport/ChromeClientGtk.h:
+
 2011-07-15  Martin Robinson  <mrobinson@igalia.com>
 
         Build fixes for WebKit2. Ensure that all generated sources are
index 39fd852..71f448b 100644 (file)
@@ -667,6 +667,11 @@ void ChromeClient::setCursor(const Cursor& cursor)
         gdk_window_set_cursor(window, newCursor);
 }
 
+void ChromeClient::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void ChromeClient::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation)
 {
     WebKitWebFrame* webFrame = kit(frame);
index 30339aa..754ba95 100644 (file)
@@ -133,6 +133,7 @@ namespace WebKit {
         virtual void formStateDidChange(const WebCore::Node*) { }
 
         virtual void setCursor(const WebCore::Cursor&);
+        virtual void setCursorHiddenUntilMouseMoves(bool);
 
         virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const {}
         virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
index 37249e3..7ba71a0 100644 (file)
@@ -1,3 +1,14 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/ChromeClientHaiku.cpp:
+        (WebCore::ChromeClientHaiku::setCursorHiddenUntilMouseMoves): Added this stub.
+        * WebCoreSupport/ChromeClientHaiku.h:
+
 2011-07-12  Joseph Pecoraro  <joepeck@webkit.org>
 
         ApplicationCache update should not immediately fail when reaching per-origin quota
index 487f443..81e5a80 100644 (file)
@@ -382,7 +382,12 @@ void ChromeClientHaiku::setCursor(const Cursor&)
     notImplemented();
 }
 
-// Notification that the given form element has changed. This function
+/void ChromeClientHaiku::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
+/ Notification that the given form element has changed. This function
 // will be called frequently, so handling should be very fast.
 void ChromeClientHaiku::formStateDidChange(const Node*)
 {
index 922a509..a88b825 100644 (file)
@@ -155,6 +155,7 @@ namespace WebCore {
         virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*);
 
         virtual void setCursor(const Cursor&);
+        virtual void setCursorHiddenUntilMouseMoves(bool);
 
         // Notification that the given form element has changed. This function
         // will be called frequently, so handling should be very fast.
index 4a47856..c27a6bf 100644 (file)
@@ -1,3 +1,15 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/WebChromeClient.h:
+        * WebCoreSupport/WebChromeClient.mm:
+        (WebChromeClient::setCursorHiddenUntilMouseMoves): Added. Calls
+        +[NSCursor setHiddenUntilMouseMoves:].
+
 2011-07-14  Gavin Barraclough  <barraclough@apple.com>
 
         https://bugs.webkit.org/show_bug.cgi?id=64250
index 02a9e7b..cdc8049 100644 (file)
@@ -128,6 +128,7 @@ public:
     virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
 
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
 
     virtual WebCore::FloatRect customHighlightRect(WebCore::Node*, const WTF::AtomicString& type,
         const WebCore::FloatRect& lineRect);
index f3472eb..438ab58 100644 (file)
@@ -801,6 +801,11 @@ void WebChromeClient::setCursor(const WebCore::Cursor& cursor)
     [platformCursor set];
 }
 
+void WebChromeClient::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
+{
+    [NSCursor setHiddenUntilMouseMoves:hiddenUntilMouseMoves];
+}
+
 KeyboardUIMode WebChromeClient::keyboardUIMode()
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
index 6aa95dc..8b2527c 100644 (file)
@@ -1,3 +1,13 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/ChromeClientQt.h:
+        (WebCore::ChromeClientQt::setCursorHiddenUntilMouseMoves): Added this stub.
+
 2011-07-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
 
         REGRESSION(91064): Upstream QtWebKit/N9 changes related tovisibleContentRect
index f7ab720..db36f6e 100644 (file)
@@ -180,6 +180,7 @@ public:
     virtual void formStateDidChange(const Node*) { }
 
     virtual void setCursor(const Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool) { }
 
     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const { }
 
index 93127b6..1a36c2f 100644 (file)
@@ -1,3 +1,14 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/WebChromeClient.cpp:
+        (WebChromeClient::setCursorHiddenUntilMouseMoves): Added this stub.
+        * WebCoreSupport/WebChromeClient.h:
+
 2011-07-12  Joseph Pecoraro  <joepeck@webkit.org>
 
         ApplicationCache update should not immediately fail when reaching per-origin quota
index dc3c5a0..9d34dc6 100644 (file)
@@ -816,6 +816,11 @@ void WebChromeClient::setCursor(const Cursor& cursor)
     setLastSetCursorToCurrentCursor();
 }
 
+void WebChromeClient::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void WebChromeClient::setLastSetCursorToCurrentCursor()
 {
     m_webView->setLastCursor(::GetCursor());
index cb85d75..68a095b 100644 (file)
@@ -139,6 +139,7 @@ public:
     virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
 
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
     virtual void setLastSetCursorToCurrentCursor();
 
     virtual void formStateDidChange(const WebCore::Node*) { }
index f689ddc..50e31e4 100644 (file)
@@ -1,3 +1,14 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebCoreSupport/ChromeClientWinCE.cpp:
+        (WebKit::ChromeClientWinCE::setCursorHiddenUntilMouseMoves): Added this stub.
+        * WebCoreSupport/ChromeClientWinCE.h:
+
 2011-07-12  Joseph Pecoraro  <joepeck@webkit.org>
 
         ApplicationCache update should not immediately fail when reaching per-origin quota
index 5961bbe..ff262ac 100644 (file)
@@ -361,6 +361,11 @@ void ChromeClientWinCE::setCursor(const Cursor&)
     notImplemented();
 }
 
+void ChromeClientWinCE::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void ChromeClientWinCE::setLastSetCursorToCurrentCursor()
 {
     notImplemented();
index 7414dda..8d35ec0 100644 (file)
@@ -106,6 +106,7 @@ public:
     virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const; // Currently only Mac has a non empty implementation.
     virtual void scrollbarsModeDidChange() const;
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
     // End methods used by HostWindow.
 
     virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags);
index ea4d5ca..c5764e2 100644 (file)
@@ -1,3 +1,13 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * WebKitSupport/ChromeClientWx.h:
+        (WebCore::ChromeClientWx::setCursorHiddenUntilMouseMoves): Added this stub.
+
 2011-07-12  Joseph Pecoraro  <joepeck@webkit.org>
 
         ApplicationCache update should not immediately fail when reaching per-origin quota
index a2f3627..b5d4c10 100644 (file)
@@ -141,6 +141,7 @@ public:
     virtual void formStateDidChange(const Node*) { }
 
     virtual void setCursor(const Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool) { }
 
     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {}
 
index 7e6c110..6048f39 100644 (file)
@@ -1,3 +1,31 @@
+2011-07-15  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides
+        https://bugs.webkit.org/show_bug.cgi?id=64615
+
+        Reviewed by Anders Carlsson.
+
+        * UIProcess/API/efl/PageClientImpl.cpp:
+        (WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Added this stub.
+        * UIProcess/API/efl/PageClientImpl.h:
+        * UIProcess/API/gtk/PageClientImpl.cpp:
+        (WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Ditto.
+        * UIProcess/API/gtk/PageClientImpl.h:
+        * UIProcess/API/mac/PageClientImpl.h:
+        * UIProcess/API/mac/PageClientImpl.mm:
+        (WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Added. Calls +[NSCursor setHiddenUntilMouseMoves:].
+        * UIProcess/PageClient.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setCursorHiddenUntilMouseMoves): Added. Calls through to the PageClient.
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in: Added SetCursorHiddenUntilMouseMoves message.
+        * UIProcess/win/WebView.cpp:
+        (WebKit::WebView::setCursorHiddenUntilMouseMoves): Added this stub.
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::setCursorHiddenUntilMouseMoves): Added. Sends SetCursorHiddenUntilMouseMoves message
+        to the page proxy.
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+
 2011-07-14  Gavin Barraclough  <barraclough@apple.com>
 
         https://bugs.webkit.org/show_bug.cgi?id=64250
index 2bc4a54..769dcd6 100644 (file)
@@ -125,6 +125,11 @@ void PageClientImpl::setCursor(const Cursor&)
     notImplemented();
 }
 
+void PageClientImpl::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void PageClientImpl::setViewportArguments(const WebCore::ViewportArguments&)
 {
     notImplemented();
index d28b806..fe6b573 100644 (file)
@@ -64,6 +64,7 @@ private:
     virtual void toolTipChanged(const String&, const String&);
 
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
     virtual void setViewportArguments(const WebCore::ViewportArguments&);
 
     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
index ab5646f..bcbf5ff 100644 (file)
@@ -148,6 +148,11 @@ void PageClientImpl::setCursor(const Cursor& cursor)
         gdk_window_set_cursor(window, newCursor);
 }
 
+void PageClientImpl::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
+{
+    notImplemented();
+}
+
 void PageClientImpl::setViewportArguments(const WebCore::ViewportArguments&)
 {
     notImplemented();
index ea54843..cdf35ac 100644 (file)
@@ -68,6 +68,7 @@ private:
     virtual void takeFocus(bool direction);
     virtual void toolTipChanged(const WTF::String&, const WTF::String&);
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
     virtual void setViewportArguments(const WebCore::ViewportArguments&);
     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
     virtual void clearAllEditCommands();
index d7d2fa8..dc1ada1 100644 (file)
@@ -65,6 +65,7 @@ private:
     virtual void didRelaunchProcess();
     virtual void toolTipChanged(const String& oldToolTip, const String& newToolTip);
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
     virtual void setViewportArguments(const WebCore::ViewportArguments&);
 
     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
index 30cffcb..e2dda2a 100644 (file)
@@ -214,6 +214,11 @@ void PageClientImpl::setCursor(const WebCore::Cursor& cursor)
         [m_wkView _setCursor:cursor.platformCursor()];
 }
 
+void PageClientImpl::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
+{
+    [NSCursor setHiddenUntilMouseMoves:hiddenUntilMouseMoves];
+}
+
 void PageClientImpl::setViewportArguments(const WebCore::ViewportArguments&)
 {
 }
index bee82ec..1da53b0 100644 (file)
@@ -110,6 +110,7 @@ public:
 #endif
 
     virtual void setCursor(const WebCore::Cursor&) = 0;
+    virtual void setCursorHiddenUntilMouseMoves(bool) = 0;
     virtual void setViewportArguments(const WebCore::ViewportArguments&) = 0;
 
     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo) = 0;
index b8d11c7..11f1c6c 100644 (file)
@@ -2663,6 +2663,11 @@ void WebPageProxy::setCursor(const Cursor& cursor)
     m_pageClient->setCursor(cursor);
 }
 
+void WebPageProxy::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
+{
+    m_pageClient->setCursorHiddenUntilMouseMoves(hiddenUntilMouseMoves);
+}
+
 #if MERGE_WHEEL_EVENTS
 static bool canCoalesce(const WebWheelEvent& a, const WebWheelEvent& b)
 {
index 6c2b3bd..09a361a 100644 (file)
@@ -739,6 +739,7 @@ private:
     void takeFocus(uint32_t direction);
     void setToolTip(const String&);
     void setCursor(const WebCore::Cursor&);
+    void setCursorHiddenUntilMouseMoves(bool);
 
     void didReceiveEvent(uint32_t opaqueType, bool handled);
     void stopResponsivenessTimer();
index 9ae5688..e395365 100644 (file)
@@ -35,6 +35,7 @@ messages -> WebPageProxy {
     DidReceiveEvent(uint32_t type, bool handled)
     StopResponsivenessTimer()
     SetCursor(WebCore::Cursor cursor)
+    SetCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
     SetStatusText(WTF::String statusText)
     SetToolTip(WTF::String toolTip)
     SetFocus(bool focused)
index 6ec3d39..95954b7 100644 (file)
@@ -32,6 +32,7 @@
 #include "NativeWebKeyboardEvent.h"
 #include "NativeWebMouseEvent.h"
 #include "NativeWebWheelEvent.h"
+#include "NotImplemented.h"
 #include "Region.h"
 #include "RunLoop.h"
 #include "WKAPICast.h"
@@ -1056,6 +1057,11 @@ void WebView::setCursor(const WebCore::Cursor& cursor)
     updateNativeCursor();
 }
 
+void WebView::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void WebView::setOverrideCursor(HCURSOR overrideCursor)
 {
     m_overrideCursor = overrideCursor;
index e5f6220..14764f3 100644 (file)
@@ -649,6 +649,11 @@ void WebChromeClient::setCursor(const WebCore::Cursor& cursor)
 #endif
 }
 
+void WebChromeClient::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)
+{
+    m_page->send(Messages::WebPageProxy::SetCursorHiddenUntilMouseMoves(hiddenUntilMouseMoves));
+}
+
 void WebChromeClient::formStateDidChange(const Node*)
 {
     notImplemented();
index 9b7acd8..638c6a3 100644 (file)
@@ -172,6 +172,7 @@ private:
     virtual void loadIconForFiles(const Vector<String>&, WebCore::FileIconLoader*);
 
     virtual void setCursor(const WebCore::Cursor&);
+    virtual void setCursorHiddenUntilMouseMoves(bool);
 
     // Notification that the given form element has changed. This function
     // will be called frequently, so handling should be very fast.