diff options
| author | Ben Murdoch <benm@google.com> | 2010-01-07 16:20:05 +0000 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2010-01-20 10:33:01 +0000 |
| commit | f5306da72ab6bb63f7ae07371e687f72a75c2fb2 (patch) | |
| tree | 34c3ada7bea43cd10fd036aad91a9bf2e7dbdc2d /WebKit/android/plugins | |
| parent | efd3d8ad1e5b1af7b31f8a9569df0b8568cdb52b (diff) | |
| download | external_webkit-f5306da72ab6bb63f7ae07371e687f72a75c2fb2.zip external_webkit-f5306da72ab6bb63f7ae07371e687f72a75c2fb2.tar.gz external_webkit-f5306da72ab6bb63f7ae07371e687f72a75c2fb2.tar.bz2 | |
Refactor our touch event code to use the version submitted to webkit.org by the Qt team.
Change-Id: I2953472cee68aadf18f9dd740e9b3f69ad729cf0
Diffstat (limited to 'WebKit/android/plugins')
| -rw-r--r-- | WebKit/android/plugins/PluginWidgetAndroid.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/WebKit/android/plugins/PluginWidgetAndroid.cpp b/WebKit/android/plugins/PluginWidgetAndroid.cpp index 0fcdc3b..17443b7 100644 --- a/WebKit/android/plugins/PluginWidgetAndroid.cpp +++ b/WebKit/android/plugins/PluginWidgetAndroid.cpp @@ -28,6 +28,7 @@ #include "Document.h" #include "Element.h" #include "Frame.h" +#include "Page.h" #include "PluginPackage.h" #include "PluginView.h" #include "PluginWidgetAndroid.h" @@ -38,6 +39,10 @@ #include "WebViewCore.h" #include "jni_utility.h" +#if ENABLE(TOUCH_EVENTS) +#include "ChromeClient.h" +#endif + #define DEBUG_VISIBLE_RECTS 1 // temporary debug printfs and fixes PluginWidgetAndroid::PluginWidgetAndroid(WebCore::PluginView* view) @@ -259,12 +264,18 @@ void PluginWidgetAndroid::updateEventFlags(ANPEventFlags flags) { } Document* doc = m_pluginView->getParentFrame()->document(); +#if ENABLE(TOUCH_EVENTS) if((m_eventFlags ^ flags) & kTouch_ANPEventFlag) { - if(flags & kTouch_ANPEventFlag) - doc->addTouchEventListener(m_pluginView->getElement()); - else - doc->removeTouchEventListener(m_pluginView->getElement()); + if (flags & kTouch_ANPEventFlag) { + if (Page* page = doc->page()) + page->chrome()->client()->needTouchEvents(true, false); + doc->addListenerTypeIfNeeded(eventNames().touchstartEvent); + } else { + if (Page* page = doc->page()) + page->chrome()->client()->needTouchEvents(false, false); + } } +#endif m_eventFlags = flags; } |
