diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-13 01:32:42 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-13 01:32:42 +0000 |
commit | be315c932fdd244fac50732827e1258da2203dbf (patch) | |
tree | 7a57714e55140a254fa7ed988a8444743754e72d /win8 | |
parent | 7be1049b30a4f8730cb29d154b92e04f1222e362 (diff) | |
download | chromium_src-be315c932fdd244fac50732827e1258da2203dbf.zip chromium_src-be315c932fdd244fac50732827e1258da2203dbf.tar.gz chromium_src-be315c932fdd244fac50732827e1258da2203dbf.tar.bz2 |
Send the Ctrl/Alt/Shift keystates with mouse input messages in Windows 8 ASH.
This fixes bug https://code.google.com/p/chromium/issues/detail?id=271604 where Ctrl click on a url
would open it in the current tab on windows 8 ASH.
BUG=271604
R=robertshield@chromium.org
Review URL: https://codereview.chromium.org/22973002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217155 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'win8')
-rw-r--r-- | win8/metro_driver/chrome_app_view_ash.cc | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/win8/metro_driver/chrome_app_view_ash.cc b/win8/metro_driver/chrome_app_view_ash.cc index b98d7ac7..8686b53 100644 --- a/win8/metro_driver/chrome_app_view_ash.cc +++ b/win8/metro_driver/chrome_app_view_ash.cc @@ -637,9 +637,10 @@ HRESULT ChromeAppViewAsh::OnPointerMoved(winui::Core::ICoreWindow* sender, return hr; if (pointer.IsMouse()) { - ui_channel_->Send(new MetroViewerHostMsg_MouseMoved(pointer.x(), - pointer.y(), - mouse_down_flags_)); + ui_channel_->Send(new MetroViewerHostMsg_MouseMoved( + pointer.x(), + pointer.y(), + mouse_down_flags_ | GetKeyboardEventFlags())); } else { DCHECK(pointer.IsTouch()); ui_channel_->Send(new MetroViewerHostMsg_TouchMoved(pointer.x(), @@ -665,11 +666,13 @@ HRESULT ChromeAppViewAsh::OnPointerPressed( if (pointer.IsMouse()) { mouse_down_flags_ = pointer.flags(); - ui_channel_->Send(new MetroViewerHostMsg_MouseButton(pointer.x(), - pointer.y(), - 0, - ui::ET_MOUSE_PRESSED, - mouse_down_flags_)); + ui_channel_->Send(new MetroViewerHostMsg_MouseButton( + pointer.x(), + pointer.y(), + 0, + ui::ET_MOUSE_PRESSED, + static_cast<ui::EventFlags>( + mouse_down_flags_ | GetKeyboardEventFlags()))); } else { DCHECK(pointer.IsTouch()); ui_channel_->Send(new MetroViewerHostMsg_TouchDown(pointer.x(), @@ -690,11 +693,13 @@ HRESULT ChromeAppViewAsh::OnPointerReleased( if (pointer.IsMouse()) { mouse_down_flags_ = ui::EF_NONE; - ui_channel_->Send(new MetroViewerHostMsg_MouseButton(pointer.x(), - pointer.y(), - 0, - ui::ET_MOUSE_RELEASED, - pointer.flags())); + ui_channel_->Send(new MetroViewerHostMsg_MouseButton( + pointer.x(), + pointer.y(), + 0, + ui::ET_MOUSE_RELEASED, + static_cast<ui::EventFlags>( + pointer.flags() | GetKeyboardEventFlags()))); } else { DCHECK(pointer.IsTouch()); ui_channel_->Send(new MetroViewerHostMsg_TouchUp(pointer.x(), |