diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-03 15:46:50 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-03 15:46:50 +0000 |
commit | 35f929c7e1cd451c3077d8bd8e2fc31b6e2eb50f (patch) | |
tree | 6b4355f2f216a9663b3a11a2c91b5ad76cafbabb /content | |
parent | c6df0f5d05961f5e16cf4cc6cf98d7091d8e96c4 (diff) | |
download | chromium_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.cc | 20 |
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. |