aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/xwayland.h1
-rw-r--r--include/xwayland/meson.build7
-rw-r--r--xwayland/server.c8
3 files changed, 15 insertions, 1 deletions
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index 3689b8b3..aa9569fe 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -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 {
diff --git a/include/xwayland/meson.build b/include/xwayland/meson.build
index a92234f1..1dad9259 100644
--- a/include/xwayland/meson.build
+++ b/include/xwayland/meson.build
@@ -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,
diff --git a/xwayland/server.c b/xwayland/server.c
index 7af01b6f..d8006c44 100644
--- a/xwayland/server.c
+++ b/xwayland/server.c
@@ -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]));