| Index: chrome/browser/ui/ash/event_rewriter.cc
|
| diff --git a/chrome/browser/ui/ash/event_rewriter.cc b/chrome/browser/ui/ash/event_rewriter.cc
|
| index d323f7404dcd7a6ac0a2a04835913bec51655c64..6fed7d2110b4932dd3a7c0be3f565b2d230bd497 100644
|
| --- a/chrome/browser/ui/ash/event_rewriter.cc
|
| +++ b/chrome/browser/ui/ash/event_rewriter.cc
|
| @@ -1003,7 +1003,9 @@ void EventRewriter::RewriteLocatedEvent(ui::LocatedEvent* event) {
|
| xievent->mods.effective = remapped_native_modifiers;
|
|
|
| // Then, remap Alt+Button1 to Button3.
|
| - if ((xievent->mods.effective & Mod1Mask) && xievent->detail == 1) {
|
| + if ((xievent->evtype == XI_ButtonPress ||
|
| + pressed_device_ids_.count(xievent->sourceid)) &&
|
| + (xievent->mods.effective & Mod1Mask) && xievent->detail == 1) {
|
| xievent->mods.effective &= ~Mod1Mask;
|
| xievent->detail = 3;
|
| if (xievent->evtype == XI_ButtonRelease) {
|
| @@ -1012,6 +1014,9 @@ void EventRewriter::RewriteLocatedEvent(ui::LocatedEvent* event) {
|
| XISetMask(xievent->buttons.mask, 3);
|
| XIClearMask(xievent->buttons.mask, 1);
|
| xievent->mods.effective &= ~Button1Mask;
|
| + pressed_device_ids_.erase(xievent->sourceid);
|
| + } else {
|
| + pressed_device_ids_.insert(xievent->sourceid);
|
| }
|
| }
|
|
|
|
|