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: https://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 aff529a74563785194b7efc72e7224ba21e0cd1f..0d8b676310c309bbd46b0f11f6fefd05deefe528 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 2822ba4d48035e1e524aa9d9810a63d8164d9a85..1c185f8df39d02d75235d06a923beadbbeb341c0 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 f1fae9215fa8ad8d70bcdaead65dda7440d2c7fc..785b12ccdc774917cca3a5a84f953ceb71f2ea9e 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 7ede62c9ae9bcd41da40074324080757a1a519ae..484ca813f69d6fb000d374cb0d139ed68ea80a17 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 d9ae0dea7cfc767c97f28a3a34b35c64cc8a60a7..12b9f5467cdb8cdb10704adedc70c8e67c11d7c1 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 434fc75be062d4d05c1145471d0f4d8efd08095e..d5e6d7b63d1a50a82f4f2fd99d78c36f2eba4f8a 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 316f043d9a2837bc7a0d613d6af598914b64e3ab..1b8b9320c49e16a22d14f1e621551ae6c328ebbc 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 4045831efdd5c8b15f77f76dbd0641434a457214..8bf9c16019cf3e0608d0baf7ef2201abc5b39238 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 0182178775ee1d066e6239fe922f860d2da247ab..a3e9b0fd93bb8c0e636a9b6b31a3b15a6785cf8f 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 6e79aee46c1ab2fbec31ce3fe8c5ac83d3902339..5234e436794505ff1ef9423f5260715d8972f219 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 683a417608782e82938bf8e713d701fbd02dee43..83a57d563968a6cfd1baf30413f22d6ad557435b 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 3fdf1bdc17ac8a400ddf3fd513b12aa02cf111ee..71576f7af723af6959d6621cc18df5a4120cdb93 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 e2492985c3bc034a6832e0fdf33964cf16705201..1e79cafcd97c8a81d775599433bceddd2dde208c 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 594639051ab0c8ffc97d1225347171d0b29b3b00..b7da20ce4efb80661db3cf81438e14fb000e92f6 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 39fd8520eca19a3f81ec4f5e6776adca1756ad1b..71f448bdec64847abe0157e7a30270f7ca795ded 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 30339aad19f0a1e14f5b847cbe57b4c3c32b5f28..754ba953d673e1b556f9036c1e4120b5417b2df1 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 37249e3c0c70c487d0b88c11c9449970f6504e79..7ba71a0640980bbe334407e56669ca9b972cd2f2 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 487f443a3b60ca744e4e369a45cd7f78947fdc26..81e5a80b8124dd9f3b21db9558fd97e1f6733477 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 922a5095e4143ca9b26d0794736c873982db114b..a88b82550ce0f7b5b7d18e6263686099c2e75316 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 4a47856949546a963954668d80039a22b90837bf..c27a6bf51adb9f3120c5340b8053d712ea71d770 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 02a9e7b5e86dc12d32b9d52639bba10956498ce1..cdc8049118b1148cf223535843b2a09d375d22ae 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 f3472eb1255b778ccda476453e2b908145586244..438ab58cb46a79b7991dc328ef9197f62b2a265a 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 6aa95dccda5cfd561e9a60878a2234cbd430463b..8b2527c766e90c55a9b2b7766561e2461807deb3 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 f7ab72072eadc19e1cbf56e16944e009929fb303..db36f6e9df6e39eb43b7421064850020e58f4c98 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 93127b65a5b7db2a85ac202379115a3469ca967e..1a36c2f74051e35ae8218a901aae9d781d6e0e09 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 dc3c5a021a60011358b4063cd3b26cc787c6dea2..9d34dc69d73c3294f8116d474382ee51561b1d12 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 cb85d758ae2e104710fb2660b6edb96839728619..68a095ba7aa77d6287226680e336f44734ffed04 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 f689ddc9b5375a5fcd5f926c7812d98e261d4b1f..50e31e4343fda82244f619ec0cc5ff547001f9d3 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 5961bbe78988c4a3c610122d8f95f02c34b11dd6..ff262acca023a69f1110d107dd81feb554c8fbef 100644 (file)
@@ -361,6 +361,11 @@ void ChromeClientWinCE::setCursor(const Cursor&)
     notImplemented();
 }
 
+void ChromeClientWinCE::setCursorHiddenUntilMouseMoves(bool)
+{
+    notImplemented();
+}
+
 void ChromeClientWinCE::setLastSetCursorToCurrentCursor()
 {
     notImplemented();
index 7414ddadd5ec662888deaf68f3ff064285437475..8d35ec0956427c6520b3304cb3b107b1db7293e9 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 ea4d5caeacadf6878dc97727fc76e6529719f5b5..c5764e281162d380ec0dacab6c9c7bdeba4cd2af 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 a2f3627aed50ec349d047cbb169d160fa2996da6..b5d4c1093fb7ba00404eecbbdf533f3d8833a642 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 7e6c1102edcd280d6299d92430ca32049f2881b7..6048f3932f932acdb6dec91064235e1294ec9602 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 2bc4a548d1caf85dfbdbdcfceb9642fce2d92d76..769dcd63b5697bbcd2458bcd61e3727913978bf2 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 d28b806e2bd60da72c164dad7bbb34e386ae1576..fe6b573a781966398a5bdde71b66928fac443d3d 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 ab5646f72d5fa3c4369f23115a0a6fe2bbba1621..bcbf5ffd207d992d0a3dc70987fbf8fec19a8763 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 ea548436b5d4c778825c4fe01d531ad3ea36d56e..cdf35accaba9835ae397b04f2cbfe004d3b7fd91 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 d7d2fa8c454180687f9e0e367cbbb7b07929e0c1..dc1ada11248c81f61a4a18ad08f78d5f494ca6f4 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 30cffcb3e46c88781472f7fb1b7fdb071fbff5da..e2dda2a7e450f2406cc613a3284171356f756f6a 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 bee82ecbced5212e48639fa9e4546bcf762e4549..1da53b050683d2de74209f89a2c5fe0daa036c3b 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 b8d11c72c6b5fba027f10b777e56fd9440b47d55..11f1c6ca2655de8ba13a32459a66ef52ed11ee26 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 6c2b3bda8124d83e4c270ee16f4f5dd47e07959b..09a361aca24a41cdd442065074d9e4aaed6f2b97 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 9ae568886767c12fbc2486eb6c072f21f423777c..e39536541bb9f3d2cc03a06a9a2b823dcf6bd845 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 6ec3d39e5d28fa790c7f3b07048afa4da41ff1cc..95954b70923723977ee017b4791c795dc8c65e9e 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 e5f6220b31737f92f5840e0c479625ee79a3cc1a..14764f356f79dbc1a2339d400f2e291daec7201b 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 9b7acd839bdacb372a58ce23a66a4550e14de9e2..638c6a327e21a92a90df6c13e0c3955b7e309f00 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.