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

Unified Diff: chrome/renderer/render_widget.cc

Issue 3388013: Forward touch events to a RenderWidget's associated WebWidget (Closed)
Patch Set: removed commented-out include Created 10 years, 3 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
« chrome/renderer/render_widget.h ('K') | « chrome/renderer/render_widget.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/render_widget.cc
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc
index 480285a3fcd597355269981f33da4809345d5929..e6dff43f18ea91b208b5710a74c244787ec48d7a 100644
--- a/chrome/renderer/render_widget.cc
+++ b/chrome/renderer/render_widget.cc
@@ -36,6 +36,10 @@
#include "third_party/skia/include/core/SkMallocPixelRef.h"
#endif // defined(OS_POSIX)
+#if defined(TOUCH_UI)
+#include "chrome/renderer/gesture_manager.h"
+#endif
+
#include "third_party/WebKit/WebKit/chromium/public/WebWidget.h"
using WebKit::WebCompositionUnderline;
@@ -54,6 +58,10 @@ using WebKit::WebTextInputType;
using WebKit::WebVector;
using WebKit::WebWidget;
+#if defined(TOUCH_UI)
+using WebKit::WebTouchEvent;
+#endif
+
RenderWidget::RenderWidget(RenderThreadBase* render_thread,
WebKit::WebPopupType popup_type)
: routing_id_(MSG_ROUTING_NONE),
@@ -75,7 +83,12 @@ RenderWidget::RenderWidget(RenderThreadBase* render_thread,
popup_type_(popup_type),
pending_window_rect_count_(0),
suppress_next_char_events_(false),
- is_gpu_rendering_active_(false) {
+ is_gpu_rendering_active_(false)
+#if defined(TOUCH_UI)
+ ,
+ gesture_manager_(GestureManager::Get())
+#endif
+ {
RenderProcess::current()->AddRefProcess();
DCHECK(render_thread_);
}
@@ -103,7 +116,7 @@ RenderWidget* RenderWidget::Create(int32 opener_id,
// static
WebWidget* RenderWidget::CreateWebWidget(RenderWidget* render_widget) {
switch (render_widget->popup_type_) {
- case WebKit::WebPopupTypeNone: // Nothing to create.
+ case WebKit::WebPopupTypeNone: // Nothing to create.
break;
case WebKit::WebPopupTypeSelect:
case WebKit::WebPopupTypeSuggestion:
@@ -341,8 +354,17 @@ void RenderWidget::OnHandleInputEvent(const IPC::Message& message) {
bool processed = false;
if (input_event->type != WebInputEvent::Char || !suppress_next_char_events_) {
suppress_next_char_events_ = false;
- if (webwidget_)
+ if (webwidget_) {
processed = webwidget_->handleInputEvent(*input_event);
+#if defined(TOUCH_UI)
+ if (WebInputEvent::isTouchEventType(input_event->type)) {
darin (slow to review) 2010/09/25 15:21:06 why is this code here instead of inside the WebVie
+ processed = gesture_manager_->ProcessTouchEventForGesture(
+ *static_cast<const WebTouchEvent*>(input_event),
+ this,
+ processed);
+ }
+#endif
+ }
}
// If this RawKeyDown event corresponds to a browser keyboard shortcut and
« chrome/renderer/render_widget.h ('K') | « chrome/renderer/render_widget.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698