summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-03 15:46:50 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-03 15:46:50 +0000
commit35f929c7e1cd451c3077d8bd8e2fc31b6e2eb50f (patch)
tree6b4355f2f216a9663b3a11a2c91b5ad76cafbabb /content
parentc6df0f5d05961f5e16cf4cc6cf98d7091d8e96c4 (diff)
downloadchromium_src-35f929c7e1cd451c3077d8bd8e2fc31b6e2eb50f.zip
chromium_src-35f929c7e1cd451c3077d8bd8e2fc31b6e2eb50f.tar.gz
chromium_src-35f929c7e1cd451c3077d8bd8e2fc31b6e2eb50f.tar.bz2
Don't forward XBUTTON events to the renderer, it can't handle them. aura::Events can include XBUTTON events, but RWHVWin never handled those, so we need to filter them.
BUG=none TEST=none Review URL: http://codereview.chromium.org/8372080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108471 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index b53a55c..43c1ad1 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -74,6 +74,24 @@ void UpdateWebTouchEventAfterDispatch(WebKit::WebTouchEvent* event,
}
}
+bool CanRendererHandleEvent(const base::NativeEvent& native_event) {
+#if defined(OS_WIN)
+ // Renderer cannot handle WM_XBUTTON events.
+ switch (native_event.message) {
+ case WM_XBUTTONDOWN:
+ case WM_XBUTTONUP:
+ case WM_XBUTTONDBLCLK:
+ case WM_NCXBUTTONDOWN:
+ case WM_NCXBUTTONUP:
+ case WM_NCXBUTTONDBLCLK:
+ return false;
+ default:
+ break;
+ }
+#endif
+ return true;
+}
+
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -435,7 +453,7 @@ int RenderWidgetHostViewAura::GetNonClientComponent(
bool RenderWidgetHostViewAura::OnMouseEvent(aura::MouseEvent* event) {
if (event->type() == ui::ET_MOUSEWHEEL)
host_->ForwardWheelEvent(content::MakeWebMouseWheelEvent(event));
- else
+ else if (CanRendererHandleEvent(event->native_event()))
host_->ForwardMouseEvent(content::MakeWebMouseEvent(event));
// Return true so that we receive released/drag events.