diff options
author | Peter Hutterer <peter.hutterer@redhat.com> | 2009-05-19 08:59:25 -0400 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@redhat.com> | 2009-05-19 08:59:25 -0400 |
commit | 908b28e8325fe8c5f0fd774f4b04df5506c29f68 (patch) | |
tree | 1b24ac6fa2abdfa1f6fda9a55939ae303e18e031 | |
parent | 70a3955527e09a425a8041e4adad5480b726f172 (diff) |
Fix modifier handling
-rw-r--r-- | src/PointerDevice.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/PointerDevice.cpp b/src/PointerDevice.cpp index d288b65..c65e11f 100644 --- a/src/PointerDevice.cpp +++ b/src/PointerDevice.cpp @@ -177,7 +177,13 @@ void PointerDevice::setWMEvents(WMWindow* window) { XIEventMask mask; unsigned char bits[4] = {0}; - int modifiers = 0; + XIGrabModifiers modifiers[4] = {0}; + int failed = 0; + + modifiers[0].modifiers = 0; + modifiers[1].modifiers = 0x1; + modifiers[2].modifiers = 0x10; + modifiers[3].modifiers = 0x11; mask.mask = bits; mask.mask_len = sizeof(bits); @@ -202,9 +208,12 @@ void PointerDevice::setWMEvents(WMWindow* window) (int)window->getButtonClose()); - XIGrabButton(x11->dpy, this->id, Button1, window->getClientWindow(), - None, GrabModeSync, GrabModeAsync, False, &mask, 1, - &modifiers); + failed = XIGrabButton(x11->dpy, this->id, Button1, window->getClientWindow(), + None, GrabModeSync, GrabModeAsync, False, &mask, 4, + modifiers); + + for (int i= 0; i < failed; i++) + ERR("Modifiers %#x failed\n", modifiers[i]); } void PointerDevice::setDockEvents(Window win) |