summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2010-07-01 12:44:57 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2010-07-02 08:51:30 +1000
commit14327858391ebe929b806efb53ad79e789361883 (patch)
tree7dff0ca91f9606425f0d8d9c359d127277f000d3 /include
parent339f62b1bfadb0ee77d67e351f4e30f5d5e9625f (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.h6
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"