Commit 0922f052 authored by Tom Anderson's avatar Tom Anderson Committed by Commit Bot

[XProto] Fix regression in XInput event selection

This fixes an improper usage of the XProto API introduced in [1].

[1] https://chromium-review.googlesource.com/c/chromium/src/+/2327373

BUG=11240791,1126756
R=sky

Change-Id: I641bc226b573188f84b491069580e87117c9bf83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2406382
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806378}
parent 71930cf9
...@@ -203,27 +203,29 @@ void TouchFactory::SetupXI2ForXWindow(x11::Window window) { ...@@ -203,27 +203,29 @@ void TouchFactory::SetupXI2ForXWindow(x11::Window window) {
auto* connection = x11::Connection::Get(); auto* connection = x11::Connection::Get();
x11::Input::EventMask mask{}; x11::Input::EventMask mask{};
mask.mask.push_back({});
auto* mask_data = mask.mask.data();
SetXinputMask(&mask, x11::Input::CrossingEvent::Enter); SetXinputMask(mask_data, x11::Input::CrossingEvent::Enter);
SetXinputMask(&mask, x11::Input::CrossingEvent::Leave); SetXinputMask(mask_data, x11::Input::CrossingEvent::Leave);
SetXinputMask(&mask, x11::Input::CrossingEvent::FocusIn); SetXinputMask(mask_data, x11::Input::CrossingEvent::FocusIn);
SetXinputMask(&mask, x11::Input::CrossingEvent::FocusOut); SetXinputMask(mask_data, x11::Input::CrossingEvent::FocusOut);
SetXinputMask(&mask, x11::Input::DeviceEvent::TouchBegin); SetXinputMask(mask_data, x11::Input::DeviceEvent::TouchBegin);
SetXinputMask(&mask, x11::Input::DeviceEvent::TouchUpdate); SetXinputMask(mask_data, x11::Input::DeviceEvent::TouchUpdate);
SetXinputMask(&mask, x11::Input::DeviceEvent::TouchEnd); SetXinputMask(mask_data, x11::Input::DeviceEvent::TouchEnd);
SetXinputMask(&mask, x11::Input::DeviceEvent::ButtonPress); SetXinputMask(mask_data, x11::Input::DeviceEvent::ButtonPress);
SetXinputMask(&mask, x11::Input::DeviceEvent::ButtonRelease); SetXinputMask(mask_data, x11::Input::DeviceEvent::ButtonRelease);
SetXinputMask(&mask, x11::Input::DeviceEvent::Motion); SetXinputMask(mask_data, x11::Input::DeviceEvent::Motion);
// HierarchyChanged and DeviceChanged allow X11EventSource to still pick up // HierarchyChanged and DeviceChanged allow X11EventSource to still pick up
// these events. // these events.
SetXinputMask(&mask, x11::Input::HierarchyEvent::opcode); SetXinputMask(mask_data, x11::Input::HierarchyEvent::opcode);
SetXinputMask(&mask, x11::Input::DeviceChangedEvent::opcode); SetXinputMask(mask_data, x11::Input::DeviceChangedEvent::opcode);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
if (base::SysInfo::IsRunningOnChromeOS()) { if (base::SysInfo::IsRunningOnChromeOS()) {
SetXinputMask(&mask, x11::Input::DeviceEvent::KeyPress); SetXinputMask(mask_data, x11::Input::DeviceEvent::KeyPress);
SetXinputMask(&mask, x11::Input::DeviceEvent::KeyRelease); SetXinputMask(mask_data, x11::Input::DeviceEvent::KeyRelease);
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment