diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2010-07-01 12:44:57 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2010-07-02 08:51:30 +1000 |
commit | 14327858391ebe929b806efb53ad79e789361883 (patch) | |
tree | 7dff0ca91f9606425f0d8d9c359d127277f000d3 /include | |
parent | 339f62b1bfadb0ee77d67e351f4e30f5d5e9625f (diff) |
xkb: release XTEST pointer buttons on physical releases. (#28808)
If a button release event is posted for the MD pointer, post a release event
through the matching XTEST device. This way, a client who posts a button
press through the XTEST extension cannot inadvertedly lock the button.
This behaviour is required for historical reasons, until server 1.7 the core
pointer would release a button press on physical events, regardless of the
XTEST state. Clients seem to rely on this behaviour, causing seemingly stuck
grabs.
The merged behaviour is kept for multiple keyboard PointerKey events, if two
physical keyboards hold the button down as a result of PointerKey actions,
the button is not released until the last keyboard releases the button.
X.Org Bug 28808 <http://bugs.freedesktop.org/show_bug.cgi?id=28808>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/xkbsrv.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/xkbsrv.h b/include/xkbsrv.h index 956b2249b..9f1507e8e 100644 --- a/include/xkbsrv.h +++ b/include/xkbsrv.h @@ -927,6 +927,12 @@ extern int XkbGetEffectiveGroup( extern void XkbMergeLockedPtrBtns( DeviceIntPtr /* master */); +extern void XkbFakeDeviceButton( + DeviceIntPtr /* dev */, + int /* press */, + int /* button */); + + #include "xkbfile.h" #include "xkbrules.h" |