mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-12 16:35:58 +01:00
xwayland: add support for -noTouchPointerEmulation
This allows compositors to handle touch pointer emulation manually, instead of having Xwayland do it [1]. [1]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/691
This commit is contained in:
parent
760e166578
commit
3e801d68f2
3 changed files with 15 additions and 1 deletions
|
@ -22,6 +22,7 @@ struct wlr_xwayland_cursor;
|
|||
struct wlr_xwayland_server_options {
|
||||
bool lazy;
|
||||
bool enable_wm;
|
||||
bool no_touch_pointer_emulation;
|
||||
};
|
||||
|
||||
struct wlr_xwayland_server {
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
have_listenfd = false
|
||||
have_no_touch_pointer_emulation = false
|
||||
if xwayland.found()
|
||||
xwayland_path = xwayland.get_variable('xwayland')
|
||||
have_listenfd = xwayland.get_variable('have_listenfd') == 'true'
|
||||
have_listenfd = xwayland.get_variable('have_listenfd',
|
||||
default_value: 'false') == 'true'
|
||||
have_no_touch_pointer_emulation = xwayland.get_variable(
|
||||
'have_no_touch_pointer_emulation', default_value: 'false') == 'true'
|
||||
else
|
||||
xwayland_path = xwayland_prog.full_path()
|
||||
endif
|
||||
|
@ -9,6 +13,7 @@ endif
|
|||
xwayland_config_data = configuration_data()
|
||||
xwayland_config_data.set_quoted('XWAYLAND_PATH', xwayland_path)
|
||||
xwayland_config_data.set10('HAVE_XWAYLAND_LISTENFD', have_listenfd)
|
||||
xwayland_config_data.set10('HAVE_XWAYLAND_NO_TOUCH_POINTER_EMULATION', have_no_touch_pointer_emulation)
|
||||
configure_file(
|
||||
output: 'config.h',
|
||||
configuration: xwayland_config_data,
|
||||
|
|
|
@ -73,6 +73,14 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server) {
|
|||
argv[i++] = wmfd;
|
||||
}
|
||||
|
||||
#if HAVE_XWAYLAND_NO_TOUCH_POINTER_EMULATION
|
||||
if (server->options.no_touch_pointer_emulation) {
|
||||
argv[i++] = "-noTouchPointerEmulation";
|
||||
}
|
||||
#else
|
||||
server->options.no_touch_pointer_emulation = false;
|
||||
#endif
|
||||
|
||||
argv[i++] = NULL;
|
||||
|
||||
assert(i < sizeof(argv) / sizeof(argv[0]));
|
||||
|
|
Loading…
Reference in a new issue