Peter Hutterer
a133334270
xwayland: Add XTEST support using EIS
...
This adds support for XTEST in Xwayland using EIS, the emulated input
library [1].
To differentiate between X11 clients using XTEST, initiate a EI context
for each client and use the actual client name, from its command
line.
When an X11 client first tries to use XTEST to generate emulated input
events, a new connection to libEI is initiated by Xwayland on behalf
of the X11 client.
During that connection phase, the EI server will not be accepting
events until the emulated device is actually created, meaning that any
XTEST request from the X11 client will be discarded until the EI server
is willing to accept events.
To avoid that issue, add an event queue in Xwayland per X11 client that
will keep those requests, and dequeue them as soon as the EI server is
ready, i.e. once the EI device is added.
If the X11 client disconnects from the Xserver before the EI server is
ready, or if the connection is closed by the EI server, those events are
discarded and the queue cleared from any pending events.
For 10 minutes after the client disconnects, keep the internal struct
alive. If a client with the same commandline arguments connects again,
re-use the same struct. This means we are faster with the events the
second time around but it also allows the EIS server to pause individual
clients that keep sending intermittent events and disconnect immediately
(e.g. it'd be possible to pause xdtotool while an authentication prompt
is active).
[1] https://gitlab.freedesktop.org/libinput/libei
Thanks to Jan Beich <jbeich@FreeBSD.org> for fixing the build on BSD.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Co-authored-by: Olivier Fourdan <ofourdan@redhat.com>
Co-authored-by: David Redondo <kde@david-redondo.de>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
2023-06-26 13:19:19 +02:00
..
.gitignore
Fix spelling/wording issues
2020-07-05 13:07:33 -07:00
busfault.h
Trap SIGBUS to handle truncated shared memory segments
2013-11-11 15:16:07 -08:00
callback.h
Avoid starting a comment with */*
2014-07-17 10:19:52 -07:00
client.h
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
closestr.h
Replace 'pointer' type with 'void *'
2014-01-12 10:24:11 -08:00
closure.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
colormap.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
colormapst.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
cursor.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
cursorstr.h
cursor: drop ARGB_CURSOR
2015-06-30 12:17:51 +10:00
dbus-core.h
xfree86: drop double-typedef of DBusConnection
2014-11-12 10:25:00 +10:00
displaymode.h
vidmode: move display mode definitions
2016-02-29 16:28:57 -05:00
dix-config-apple-verbatim.h
Move the apple fat binary hacks back to a header file, and make it apple-only.
2009-01-30 16:36:45 -08:00
dix.h
Convert more funcs to use InternalEvent.
2021-12-19 20:01:04 +00:00
dixaccess.h
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
dixevents.h
dix: Remove redundant declarations.
2012-05-14 13:31:00 +01:00
dixfont.h
include: Stop including <X11/fonts/fontproto.h>
2018-10-25 12:32:48 -04:00
dixfontstr.h
dix: Switch to the libXfont2 API (v2)
2016-07-18 15:25:59 -04:00
dixgrabs.h
xi: Implement grab support for new gesture event types
2021-05-30 13:26:32 +03:00
dixstruct.h
os: Define {ReadFdFrom,WriteFdTo}Client unconditionally
2018-03-08 14:12:36 -05:00
eventconvert.h
dix: Add new internal event enums for gesture events
2021-05-30 13:26:30 +03:00
events.h
xi: Implement internal gesture event struct
2021-05-30 13:26:31 +03:00
eventstr.h
xi: Implement internal gesture event struct
2021-05-30 13:26:31 +03:00
exevents.h
xi: Implement grab support for new gesture event types
2021-05-30 13:26:32 +03:00
extension.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
extinit.h
Allow disabling the SHAPE extension at runtime
2023-03-03 18:28:40 +00:00
extnsionst.h
dix: Remove extension aliases
2017-06-20 16:37:24 -04:00
fourcc.h
Consolidate fourcc.h
2020-09-15 11:43:16 +02:00
gc.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
gcstruct.h
fb: Remove 24bpp support (v3)
2017-03-17 15:14:42 -04:00
globals.h
miinitext: General cleanup (v2)
2018-01-22 17:28:12 -05:00
glx_extinit.h
miinitext: Load GLX on the mi path
2018-02-14 17:04:48 -05:00
glxvndabi.h
Fix spelling/wording issues
2020-07-05 13:07:33 -07:00
hotplug.h
config: Replace OdevAttributes linked list with struct
2014-07-17 17:10:48 -07:00
input.h
input: Add new hook DeviceSendEventsProc for XTEST
2023-06-26 13:19:19 +02:00
inputstr.h
input: Add new hook DeviceSendEventsProc for XTEST
2023-06-26 13:19:19 +02:00
inpututils.h
Implement gesture processing logic
2021-05-30 13:26:42 +03:00
list.h
Correct xorg_list_is_empty return value description
2018-02-12 08:09:53 +10:00
meson.build
xwayland: Add XTEST support using EIS
2023-06-26 13:19:19 +02:00
misc.h
include: Increase the number of max. input devices to 256.
2019-11-09 23:05:13 -05:00
miscstruct.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
nonsdk_extinit.h
Make PseudoramiXExtensionInit() prototype more generally available
2015-03-16 16:56:17 +00:00
opaque.h
Disallow byte-swapped clients by default
2023-01-06 11:59:37 +10:00
optionstr.h
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
os.h
os: Ensure sigset_t is provided when compiling for MinGW
2019-05-18 14:59:38 +00:00
pixmap.h
dix: Remove pScratchPixmap and other associated ABI changes
2022-12-30 01:32:25 +00:00
pixmapstr.h
rootless: Use screen_x and screen_y instead of pixmap pointer hacks
2023-01-20 17:10:54 +00:00
privates.h
Fix compilation with windows.h from latest w32api
2021-08-31 16:56:28 +00:00
probes.h
Remove "All rights reserved" from Oracle copyright notices
2023-02-25 09:40:41 -08:00
property.h
Mark the dixChangeWindowProperty() value argument as const
2021-07-30 08:36:35 +00:00
propertyst.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
protocol-versions.h
xfixes: Add ClientDisconnectMode
2021-06-07 17:28:05 +02:00
ptrveloc.h
dix: indentation fixes for pointer acceleration
2012-05-16 10:59:35 +10:00
region.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
regionstr.h
dix: make RegionInit legal C++
2015-01-23 10:35:49 -08:00
registry.h
XSERVER_DTRACE needs request names from registry too
2014-09-22 12:00:46 -07:00
resource.h
dix: Fix undefined shift in HashResourceID
2019-10-15 14:06:21 -04:00
rgb.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
screenint.h
dix: De-ugly the prototype for Add{GPU,}Screen
2018-10-30 12:21:41 -04:00
scrnintstr.h
dix: Remove pScratchPixmap and other associated ABI changes
2022-12-30 01:32:25 +00:00
selection.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
servermd.h
dix: Fix image byte order on big endian hardware
2015-05-07 14:03:50 -04:00
swaprep.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
swapreq.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
systemd-logind.h
xf86/logind: Fix compilation error when built without logind/platform bus
2021-12-20 16:56:14 +01:00
validate.h
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
vidmodestr.h
vidmode: build without xf86vidmodeproto
2016-03-01 11:25:59 -05:00
window.h
dix: Add hybrid full-size/empty-clip mode to SetRootClip
2016-02-22 13:26:31 -05:00
windowstr.h
dix: Remove WindowRec::backStorage
2019-04-12 21:53:03 +00:00
XIstubs.h
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
xkb-config.h.in
Move to autoconf standard function name checks & defines
2011-12-05 14:32:45 -08:00
xkbfile.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
xkbrules.h
xkb: add a call to init an XkbRMLVOSet from const chars
2014-02-04 10:53:59 +10:00
xkbsrv.h
dix: Force update LEDs after device state update in EnableDevice
2023-02-21 03:43:05 +00:00
xkbstr.h
Fix spelling/wording issues
2020-07-05 13:07:33 -07:00
xorg-config.h.meson.in
xf86AutoConfig: try modesetting on all platforms we build it on
2022-09-20 18:26:03 +00:00
xorg-server.h.meson.in
meson: Generate xorg-server.h
2018-03-28 09:54:22 -04:00
Xprintf.h
Remove "All rights reserved" from Oracle copyright notices
2023-02-25 09:40:41 -08:00
xserver-properties.h
Add missing labels for multitouch valuators
2012-10-30 15:11:10 +10:00
Xserver.d
Remove "All rights reserved" from Oracle copyright notices
2023-02-25 09:40:41 -08:00
xserver_poll.h
Fix typo in error message
2019-01-10 18:40:20 +02:00
xsha1.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
xwayland-config.h.meson.in
xwayland: Add XTEST support using EIS
2023-06-26 13:19:19 +02:00
xwin-config.h.meson.in
Add meson.build for XWin server (v2)
2017-06-02 09:32:35 -07:00