diff options
Diffstat (limited to 'WebKit/android/plugins/PluginWidgetAndroid.cpp')
| -rw-r--r-- | WebKit/android/plugins/PluginWidgetAndroid.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/WebKit/android/plugins/PluginWidgetAndroid.cpp b/WebKit/android/plugins/PluginWidgetAndroid.cpp index 00f7165..2ea3191 100644 --- a/WebKit/android/plugins/PluginWidgetAndroid.cpp +++ b/WebKit/android/plugins/PluginWidgetAndroid.cpp @@ -24,10 +24,15 @@ */ #include "config.h" -#include "android_graphics.h" +#include "PluginWidgetAndroid.h" + +#if ENABLE(TOUCH_EVENTS) +#include "ChromeClient.h" +#endif #include "Document.h" #include "Element.h" #include "Frame.h" +#include "Page.h" #include "PluginPackage.h" #include "PluginView.h" #include "PluginWidgetAndroid.h" @@ -36,7 +41,8 @@ #include "SkFlipPixelRef.h" #include "SkString.h" #include "WebViewCore.h" -#include "jni_utility.h" +#include "android_graphics.h" +#include <JNIUtility.h> #define PLUGIN_DEBUG_LOCAL 0 // controls the printing of log messages #define DEBUG_VISIBLE_RECTS 1 // temporary debug printfs and fixes @@ -263,12 +269,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; } |
