summaryrefslogtreecommitdiffstats
path: root/WebKit/android/plugins
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-01-07 16:20:05 +0000
committerBen Murdoch <benm@google.com>2010-01-20 10:33:01 +0000
commitf5306da72ab6bb63f7ae07371e687f72a75c2fb2 (patch)
tree34c3ada7bea43cd10fd036aad91a9bf2e7dbdc2d /WebKit/android/plugins
parentefd3d8ad1e5b1af7b31f8a9569df0b8568cdb52b (diff)
downloadexternal_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.cpp19
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;
}