Index: content/renderer/render_widget.cc |
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
index 7b2f48a79374a43eac861a774551293f251a451c..3f02e07e118564a9c8e9c5820f7a1568d4c43ae3 100644 |
--- a/content/renderer/render_widget.cc |
+++ b/content/renderer/render_widget.cc |
@@ -446,10 +446,16 @@ void RenderWidget::OnHandleInputEvent(const IPC::Message& message) { |
if (input_event->type == WebInputEvent::RawKeyDown) |
message.ReadBool(&iter, &is_keyboard_shortcut); |
- bool processed = false; |
+ bool prevent_default = false; |
+ if (WebInputEvent::isMouseEventType(input_event->type)) { |
+ prevent_default = WillHandleMouseEvent( |
+ *(static_cast<const WebMouseEvent*>(input_event))); |
+ } |
+ |
+ bool processed = prevent_default; |
if (input_event->type != WebInputEvent::Char || !suppress_next_char_events_) { |
suppress_next_char_events_ = false; |
- if (webwidget_) |
+ if (!processed && webwidget_) |
processed = webwidget_->handleInputEvent(*input_event); |
} |
@@ -482,10 +488,12 @@ void RenderWidget::OnHandleInputEvent(const IPC::Message& message) { |
handling_input_event_ = false; |
- if (WebInputEvent::isKeyboardEventType(input_event->type)) |
- DidHandleKeyEvent(); |
- if (WebInputEvent::isMouseEventType(input_event->type)) |
- DidHandleMouseEvent(*(static_cast<const WebMouseEvent*>(input_event))); |
+ if (!prevent_default) { |
+ if (WebInputEvent::isKeyboardEventType(input_event->type)) |
+ DidHandleKeyEvent(); |
+ if (WebInputEvent::isMouseEventType(input_event->type)) |
+ DidHandleMouseEvent(*(static_cast<const WebMouseEvent*>(input_event))); |
+ } |
} |
void RenderWidget::OnMouseCaptureLost() { |
@@ -1393,3 +1401,7 @@ void RenderWidget::CleanupWindowInPluginMoves(gfx::PluginWindowHandle window) { |
} |
} |
} |
+ |
+bool RenderWidget::WillHandleMouseEvent(const WebKit::WebMouseEvent& event) { |
+ return false; |
+} |