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

Unified Diff: content/renderer/render_widget.cc

Issue 7863003: Mouse lock implementation, including the renderer side and the Windows version of the browser side. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test_shell_tests. Created 9 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
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 7b2f48a79374a43eac861a774551293f251a451c..7ba5d67ab5e4c28a36c08609fa99e5c641c56847 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;
+}

Powered by Google App Engine
This is Rietveld 408576698