Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(658)

Unified Diff: webkit/plugins/ppapi/ppapi_plugin_instance.cc

Issue 10628020: webkit/ppapi: Notify the container when a plugin is accepting touch events. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
index 3b6f26301caedf8aa8197b04511d6ebe0a29ce75..4b7906ab7aa6f33646f67f5eb03f1ff652c985f1 100644
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
@@ -1683,6 +1683,11 @@ void PluginInstance::SimulateImeSetCompositionEvent(
utf16_text, underlines, offsets[0], offsets[1]);
}
+bool PluginInstance::IsAcceptingTouchEvents() const {
+ return (filtered_input_event_mask_ & PP_INPUTEVENT_CLASS_TOUCH) ||
+ (input_event_mask_ & PP_INPUTEVENT_CLASS_TOUCH);
+}
+
void PluginInstance::ClosePendingUserGesture(PP_Instance instance,
PP_TimeTicks timestamp) {
// Close the pending user gesture if the plugin had a chance to respond.
@@ -1876,6 +1881,8 @@ int32_t PluginInstance::RequestInputEvents(PP_Instance instance,
uint32_t event_classes) {
input_event_mask_ |= event_classes;
filtered_input_event_mask_ &= ~(event_classes);
+ if (event_classes & PP_INPUTEVENT_CLASS_TOUCH)
+ container_->setAcceptingTouchEvents(IsAcceptingTouchEvents());
return ValidateRequestInputEvents(false, event_classes);
}
@@ -1883,6 +1890,8 @@ int32_t PluginInstance::RequestFilteringInputEvents(PP_Instance instance,
uint32_t event_classes) {
filtered_input_event_mask_ |= event_classes;
input_event_mask_ &= ~(event_classes);
+ if (event_classes & PP_INPUTEVENT_CLASS_TOUCH)
+ container_->setAcceptingTouchEvents(IsAcceptingTouchEvents());
return ValidateRequestInputEvents(true, event_classes);
}
@@ -1890,6 +1899,8 @@ void PluginInstance::ClearInputEventRequest(PP_Instance instance,
uint32_t event_classes) {
input_event_mask_ &= ~(event_classes);
filtered_input_event_mask_ &= ~(event_classes);
+ if (event_classes & PP_INPUTEVENT_CLASS_TOUCH)
+ container_->setAcceptingTouchEvents(IsAcceptingTouchEvents());
}
void PluginInstance::ZoomChanged(PP_Instance instance, double factor) {

Powered by Google App Engine
This is Rietveld 408576698