[Chromium] Enable touch events in PagePopup
authorkeishi@webkit.org <keishi@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Mar 2013 02:17:37 +0000 (02:17 +0000)
committerkeishi@webkit.org <keishi@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Mar 2013 02:17:37 +0000 (02:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=113380

We want to use touch events inside the calendar picker. This patch adds
PagePopupChromeClient::needTouchEvents() and moved hasTouchEventHandlers()
from WebViewClient to WebWidgetClient.

Reviewed by Kent Tamura.

* public/WebViewClient.h:
* public/WebWidgetClient.h:
(WebWidgetClient):
(WebKit::WebWidgetClient::hasTouchEventHandlers): Moved from WebViewClient.
* src/WebPagePopupImpl.cpp:
(WebKit):

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

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebViewClient.h
Source/WebKit/chromium/public/WebWidgetClient.h
Source/WebKit/chromium/src/WebPagePopupImpl.cpp

index ab95c5c..ddbe069 100644 (file)
@@ -1,3 +1,21 @@
+2013-03-27  Keishi Hattori  <keishi@webkit.org>
+
+        [Chromium] Enable touch events in PagePopup
+        https://bugs.webkit.org/show_bug.cgi?id=113380
+
+        We want to use touch events inside the calendar picker. This patch adds
+        PagePopupChromeClient::needTouchEvents() and moved hasTouchEventHandlers()
+        from WebViewClient to WebWidgetClient.
+
+        Reviewed by Kent Tamura.
+
+        * public/WebViewClient.h:
+        * public/WebWidgetClient.h:
+        (WebWidgetClient):
+        (WebKit::WebWidgetClient::hasTouchEventHandlers): Moved from WebViewClient.
+        * src/WebPagePopupImpl.cpp:
+        (WebKit):
+
 2013-03-27  Timothy Hatcher  <timothy@apple.com>
 
         Add support for dock-to-right of the Web Inspector in the Mac port.
index a4497de..a152114 100644 (file)
@@ -280,7 +280,6 @@ public:
     virtual void focusedNodeChanged(const WebNode&) { }
 
     virtual void numberOfWheelEventHandlersChanged(unsigned) { }
-    virtual void hasTouchEventHandlers(bool) { }
 
     // Indicates two things:
     //   1) This view may have a new layout now.
index b68c5ec..4aa94e5 100644 (file)
@@ -172,6 +172,9 @@ public:
     // Called when a gesture event is handled.
     virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled) { }
 
+    // Called to update if touch events should be sent.
+    virtual void hasTouchEventHandlers(bool) { }
+
 protected:
     ~WebWidgetClient() { }
 };
index 14c1dcf..eef556d 100644 (file)
@@ -138,6 +138,13 @@ private:
             m_popup->m_webView->client()->didChangeCursor(WebCursorInfo(cursor));
     }
 
+#if ENABLE(TOUCH_EVENTS)
+    virtual void needTouchEvents(bool needsTouchEvents) OVERRIDE
+    {
+        m_popup->widgetClient()->hasTouchEventHandlers(needsTouchEvents);
+    }
+#endif // ENABLE(TOUCH_EVENTS)
+
     // PageClientChromium methods:
     virtual WebKit::WebScreenInfo screenInfo() OVERRIDE
     {