summaryrefslogtreecommitdiffstats
path: root/win8
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-13 01:32:42 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-13 01:32:42 +0000
commitbe315c932fdd244fac50732827e1258da2203dbf (patch)
tree7a57714e55140a254fa7ed988a8444743754e72d /win8
parent7be1049b30a4f8730cb29d154b92e04f1222e362 (diff)
downloadchromium_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.cc31
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(),