diff options
-rw-r--r-- | .builds/alpine.yml | 7 | ||||
-rw-r--r-- | include/sway/criteria.h | 2 | ||||
-rw-r--r-- | include/sway/server.h | 6 | ||||
-rw-r--r-- | include/sway/tree/root.h | 4 | ||||
-rw-r--r-- | include/sway/tree/view.h | 13 | ||||
-rw-r--r-- | meson.build | 12 | ||||
-rw-r--r-- | meson_options.txt | 1 | ||||
-rw-r--r-- | sway/commands/swap.c | 4 | ||||
-rw-r--r-- | sway/commands/xwayland.c | 2 | ||||
-rw-r--r-- | sway/criteria.c | 18 | ||||
-rw-r--r-- | sway/desktop/transaction.c | 2 | ||||
-rw-r--r-- | sway/input/cursor.c | 2 | ||||
-rw-r--r-- | sway/input/seat.c | 4 | ||||
-rw-r--r-- | sway/input/seatop_default.c | 8 | ||||
-rw-r--r-- | sway/ipc-json.c | 4 | ||||
-rw-r--r-- | sway/meson.build | 2 | ||||
-rw-r--r-- | sway/server.c | 8 | ||||
-rw-r--r-- | sway/tree/root.c | 2 | ||||
-rw-r--r-- | sway/tree/view.c | 14 |
19 files changed, 56 insertions, 59 deletions
diff --git a/.builds/alpine.yml b/.builds/alpine.yml index 59df7737..055e5ffa 100644 --- a/.builds/alpine.yml +++ b/.builds/alpine.yml | |||
@@ -38,9 +38,14 @@ tasks: | |||
38 | cd sway | 38 | cd sway |
39 | ninja -C build | 39 | ninja -C build |
40 | - build-no-xwayland: | | 40 | - build-no-xwayland: | |
41 | cd sway | 41 | cd wlroots |
42 | meson configure build -Dxwayland=disabled | 42 | meson configure build -Dxwayland=disabled |
43 | ninja -C build | 43 | ninja -C build |
44 | sudo ninja -C build install | ||
45 | |||
46 | cd ../sway | ||
47 | meson configure build --clearcache | ||
48 | ninja -C build | ||
44 | - build-static: | | 49 | - build-static: | |
45 | cd sway | 50 | cd sway |
46 | mkdir subprojects | 51 | mkdir subprojects |
diff --git a/include/sway/criteria.h b/include/sway/criteria.h index 8da345ea..758d70ed 100644 --- a/include/sway/criteria.h +++ b/include/sway/criteria.h | |||
@@ -36,7 +36,7 @@ struct criteria { | |||
36 | struct pattern *app_id; | 36 | struct pattern *app_id; |
37 | struct pattern *con_mark; | 37 | struct pattern *con_mark; |
38 | uint32_t con_id; // internal ID | 38 | uint32_t con_id; // internal ID |
39 | #if HAVE_XWAYLAND | 39 | #if WLR_HAS_XWAYLAND |
40 | struct pattern *class; | 40 | struct pattern *class; |
41 | uint32_t id; // X11 window ID | 41 | uint32_t id; // X11 window ID |
42 | struct pattern *instance; | 42 | struct pattern *instance; |
diff --git a/include/sway/server.h b/include/sway/server.h index c71851f6..90f187fd 100644 --- a/include/sway/server.h +++ b/include/sway/server.h | |||
@@ -5,7 +5,7 @@ | |||
5 | #include "config.h" | 5 | #include "config.h" |
6 | #include "list.h" | 6 | #include "list.h" |
7 | #include "sway/desktop/idle_inhibit_v1.h" | 7 | #include "sway/desktop/idle_inhibit_v1.h" |
8 | #if HAVE_XWAYLAND | 8 | #if WLR_HAS_XWAYLAND |
9 | #include "sway/xwayland.h" | 9 | #include "sway/xwayland.h" |
10 | #endif | 10 | #endif |
11 | 11 | ||
@@ -59,7 +59,7 @@ struct sway_server { | |||
59 | 59 | ||
60 | struct wlr_tablet_manager_v2 *tablet_v2; | 60 | struct wlr_tablet_manager_v2 *tablet_v2; |
61 | 61 | ||
62 | #if HAVE_XWAYLAND | 62 | #if WLR_HAS_XWAYLAND |
63 | struct sway_xwayland xwayland; | 63 | struct sway_xwayland xwayland; |
64 | struct wl_listener xwayland_surface; | 64 | struct wl_listener xwayland_surface; |
65 | struct wl_listener xwayland_ready; | 65 | struct wl_listener xwayland_ready; |
@@ -165,7 +165,7 @@ void sway_session_lock_add_output(struct sway_session_lock *lock, | |||
165 | bool sway_session_lock_has_surface(struct sway_session_lock *lock, | 165 | bool sway_session_lock_has_surface(struct sway_session_lock *lock, |
166 | struct wlr_surface *surface); | 166 | struct wlr_surface *surface); |
167 | void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data); | 167 | void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data); |
168 | #if HAVE_XWAYLAND | 168 | #if WLR_HAS_XWAYLAND |
169 | void handle_xwayland_surface(struct wl_listener *listener, void *data); | 169 | void handle_xwayland_surface(struct wl_listener *listener, void *data); |
170 | #endif | 170 | #endif |
171 | void handle_server_decoration(struct wl_listener *listener, void *data); | 171 | void handle_server_decoration(struct wl_listener *listener, void *data); |
diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h index 15df0f55..7de0abcd 100644 --- a/include/sway/tree/root.h +++ b/include/sway/tree/root.h | |||
@@ -2,12 +2,12 @@ | |||
2 | #define _SWAY_ROOT_H | 2 | #define _SWAY_ROOT_H |
3 | #include <wayland-server-core.h> | 3 | #include <wayland-server-core.h> |
4 | #include <wayland-util.h> | 4 | #include <wayland-util.h> |
5 | #include <wlr/config.h> | ||
5 | #include <wlr/types/wlr_output_layout.h> | 6 | #include <wlr/types/wlr_output_layout.h> |
6 | #include <wlr/types/wlr_scene.h> | 7 | #include <wlr/types/wlr_scene.h> |
7 | #include <wlr/render/wlr_texture.h> | 8 | #include <wlr/render/wlr_texture.h> |
8 | #include "sway/tree/container.h" | 9 | #include "sway/tree/container.h" |
9 | #include "sway/tree/node.h" | 10 | #include "sway/tree/node.h" |
10 | #include "config.h" | ||
11 | #include "list.h" | 11 | #include "list.h" |
12 | 12 | ||
13 | extern struct sway_root *root; | 13 | extern struct sway_root *root; |
@@ -47,7 +47,7 @@ struct sway_root { | |||
47 | struct wlr_scene_tree *shell_top; | 47 | struct wlr_scene_tree *shell_top; |
48 | struct wlr_scene_tree *fullscreen; | 48 | struct wlr_scene_tree *fullscreen; |
49 | struct wlr_scene_tree *fullscreen_global; | 49 | struct wlr_scene_tree *fullscreen_global; |
50 | #if HAVE_XWAYLAND | 50 | #if WLR_HAS_XWAYLAND |
51 | struct wlr_scene_tree *unmanaged; | 51 | struct wlr_scene_tree *unmanaged; |
52 | #endif | 52 | #endif |
53 | struct wlr_scene_tree *shell_overlay; | 53 | struct wlr_scene_tree *shell_overlay; |
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 7faacdcc..3ae8cf22 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h | |||
@@ -1,10 +1,11 @@ | |||
1 | #ifndef _SWAY_VIEW_H | 1 | #ifndef _SWAY_VIEW_H |
2 | #define _SWAY_VIEW_H | 2 | #define _SWAY_VIEW_H |
3 | #include <wayland-server-core.h> | 3 | #include <wayland-server-core.h> |
4 | #include <wlr/config.h> | ||
4 | #include <wlr/types/wlr_compositor.h> | 5 | #include <wlr/types/wlr_compositor.h> |
5 | #include <wlr/types/wlr_scene.h> | 6 | #include <wlr/types/wlr_scene.h> |
6 | #include "sway/config.h" | 7 | #include "sway/config.h" |
7 | #if HAVE_XWAYLAND | 8 | #if WLR_HAS_XWAYLAND |
8 | #include <wlr/xwayland.h> | 9 | #include <wlr/xwayland.h> |
9 | #endif | 10 | #endif |
10 | #include "sway/input/input-manager.h" | 11 | #include "sway/input/input-manager.h" |
@@ -15,7 +16,7 @@ struct sway_xdg_decoration; | |||
15 | 16 | ||
16 | enum sway_view_type { | 17 | enum sway_view_type { |
17 | SWAY_VIEW_XDG_SHELL, | 18 | SWAY_VIEW_XDG_SHELL, |
18 | #if HAVE_XWAYLAND | 19 | #if WLR_HAS_XWAYLAND |
19 | SWAY_VIEW_XWAYLAND, | 20 | SWAY_VIEW_XWAYLAND, |
20 | #endif | 21 | #endif |
21 | }; | 22 | }; |
@@ -27,7 +28,7 @@ enum sway_view_prop { | |||
27 | VIEW_PROP_INSTANCE, | 28 | VIEW_PROP_INSTANCE, |
28 | VIEW_PROP_WINDOW_TYPE, | 29 | VIEW_PROP_WINDOW_TYPE, |
29 | VIEW_PROP_WINDOW_ROLE, | 30 | VIEW_PROP_WINDOW_ROLE, |
30 | #if HAVE_XWAYLAND | 31 | #if WLR_HAS_XWAYLAND |
31 | VIEW_PROP_X11_WINDOW_ID, | 32 | VIEW_PROP_X11_WINDOW_ID, |
32 | VIEW_PROP_X11_PARENT_ID, | 33 | VIEW_PROP_X11_PARENT_ID, |
33 | #endif | 34 | #endif |
@@ -98,7 +99,7 @@ struct sway_view { | |||
98 | 99 | ||
99 | union { | 100 | union { |
100 | struct wlr_xdg_toplevel *wlr_xdg_toplevel; | 101 | struct wlr_xdg_toplevel *wlr_xdg_toplevel; |
101 | #if HAVE_XWAYLAND | 102 | #if WLR_HAS_XWAYLAND |
102 | struct wlr_xwayland_surface *wlr_xwayland_surface; | 103 | struct wlr_xwayland_surface *wlr_xwayland_surface; |
103 | #endif | 104 | #endif |
104 | }; | 105 | }; |
@@ -127,7 +128,7 @@ struct sway_xdg_shell_view { | |||
127 | struct wl_listener unmap; | 128 | struct wl_listener unmap; |
128 | struct wl_listener destroy; | 129 | struct wl_listener destroy; |
129 | }; | 130 | }; |
130 | #if HAVE_XWAYLAND | 131 | #if WLR_HAS_XWAYLAND |
131 | struct sway_xwayland_view { | 132 | struct sway_xwayland_view { |
132 | struct sway_view view; | 133 | struct sway_view view; |
133 | 134 | ||
@@ -293,7 +294,7 @@ void view_center_and_clip_surface(struct sway_view *view); | |||
293 | 294 | ||
294 | struct sway_view *view_from_wlr_xdg_surface( | 295 | struct sway_view *view_from_wlr_xdg_surface( |
295 | struct wlr_xdg_surface *xdg_surface); | 296 | struct wlr_xdg_surface *xdg_surface); |
296 | #if HAVE_XWAYLAND | 297 | #if WLR_HAS_XWAYLAND |
297 | struct sway_view *view_from_wlr_xwayland_surface( | 298 | struct sway_view *view_from_wlr_xwayland_surface( |
298 | struct wlr_xwayland_surface *xsurface); | 299 | struct wlr_xwayland_surface *xsurface); |
299 | #endif | 300 | #endif |
diff --git a/meson.build b/meson.build index 1d143110..3c444e07 100644 --- a/meson.build +++ b/meson.build | |||
@@ -57,10 +57,6 @@ foreach name, _ : wlroots_features | |||
57 | wlroots_features += { name: have } | 57 | wlroots_features += { name: have } |
58 | endforeach | 58 | endforeach |
59 | 59 | ||
60 | if get_option('xwayland').enabled() and not wlroots_features['xwayland'] | ||
61 | error('Cannot enable Xwayland in sway: wlroots has been built without Xwayland support') | ||
62 | endif | ||
63 | |||
64 | null_dep = dependency('', required: false) | 60 | null_dep = dependency('', required: false) |
65 | 61 | ||
66 | jsonc = dependency('json-c', version: '>=0.13') | 62 | jsonc = dependency('json-c', version: '>=0.13') |
@@ -77,16 +73,14 @@ gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: get_option('gdk-pixbuf')) | |||
77 | pixman = dependency('pixman-1') | 73 | pixman = dependency('pixman-1') |
78 | libevdev = dependency('libevdev') | 74 | libevdev = dependency('libevdev') |
79 | libinput = wlroots_features['libinput_backend'] ? dependency('libinput', version: '>=1.21.0') : null_dep | 75 | libinput = wlroots_features['libinput_backend'] ? dependency('libinput', version: '>=1.21.0') : null_dep |
80 | xcb = dependency('xcb', required: get_option('xwayland')) | 76 | xcb = wlroots_features['xwayland'] ? dependency('xcb') : null_dep |
81 | drm = dependency('libdrm') | 77 | drm = dependency('libdrm') |
82 | libudev = wlroots_features['libinput_backend'] ? dependency('libudev') : null_dep | 78 | libudev = wlroots_features['libinput_backend'] ? dependency('libudev') : null_dep |
83 | math = cc.find_library('m') | 79 | math = cc.find_library('m') |
84 | rt = cc.find_library('rt') | 80 | rt = cc.find_library('rt') |
85 | xcb_icccm = dependency('xcb-icccm', required: get_option('xwayland')) | 81 | xcb_icccm = wlroots_features['xwayland'] ? dependency('xcb-icccm') : null_dep |
86 | threads = dependency('threads') # for pthread_setschedparam | 82 | threads = dependency('threads') # for pthread_setschedparam |
87 | 83 | ||
88 | have_xwayland = xcb.found() and xcb_icccm.found() and wlroots_features['xwayland'] | ||
89 | |||
90 | if get_option('sd-bus-provider') == 'auto' | 84 | if get_option('sd-bus-provider') == 'auto' |
91 | if not get_option('tray').disabled() | 85 | if not get_option('tray').disabled() |
92 | assert(get_option('auto_features').auto(), 'sd-bus-provider must not be set to auto since auto_features != auto') | 86 | assert(get_option('auto_features').auto(), 'sd-bus-provider must not be set to auto since auto_features != auto') |
@@ -110,7 +104,6 @@ have_tray = (not get_option('tray').disabled()) and tray_deps_found | |||
110 | 104 | ||
111 | conf_data = configuration_data() | 105 | conf_data = configuration_data() |
112 | 106 | ||
113 | conf_data.set10('HAVE_XWAYLAND', have_xwayland) | ||
114 | conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) | 107 | conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) |
115 | conf_data.set10('HAVE_LIBSYSTEMD', sdbus.found() and sdbus.name() == 'libsystemd') | 108 | conf_data.set10('HAVE_LIBSYSTEMD', sdbus.found() and sdbus.name() == 'libsystemd') |
116 | conf_data.set10('HAVE_LIBELOGIND', sdbus.found() and sdbus.name() == 'libelogind') | 109 | conf_data.set10('HAVE_LIBELOGIND', sdbus.found() and sdbus.name() == 'libelogind') |
@@ -271,7 +264,6 @@ endif | |||
271 | subdir('completions') | 264 | subdir('completions') |
272 | 265 | ||
273 | summary({ | 266 | summary({ |
274 | 'xwayland': have_xwayland, | ||
275 | 'gdk-pixbuf': gdk_pixbuf.found(), | 267 | 'gdk-pixbuf': gdk_pixbuf.found(), |
276 | 'tray': have_tray, | 268 | 'tray': have_tray, |
277 | 'man-pages': scdoc.found(), | 269 | 'man-pages': scdoc.found(), |
diff --git a/meson_options.txt b/meson_options.txt index 8d0d6509..506ecc9a 100644 --- a/meson_options.txt +++ b/meson_options.txt | |||
@@ -4,7 +4,6 @@ option('bash-completions', type: 'boolean', value: true, description: 'Install b | |||
4 | option('fish-completions', type: 'boolean', value: true, description: 'Install fish shell completions.') | 4 | option('fish-completions', type: 'boolean', value: true, description: 'Install fish shell completions.') |
5 | option('swaybar', type: 'boolean', value: true, description: 'Enable support for swaybar') | 5 | option('swaybar', type: 'boolean', value: true, description: 'Enable support for swaybar') |
6 | option('swaynag', type: 'boolean', value: true, description: 'Enable support for swaynag') | 6 | option('swaynag', type: 'boolean', value: true, description: 'Enable support for swaynag') |
7 | option('xwayland', type: 'feature', value: 'auto', description: 'Enable support for X11 applications') | ||
8 | option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray') | 7 | option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray') |
9 | option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybar tray') | 8 | option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybar tray') |
10 | option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages') | 9 | option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages') |
diff --git a/sway/commands/swap.c b/sway/commands/swap.c index e142eede..c0b0d0b9 100644 --- a/sway/commands/swap.c +++ b/sway/commands/swap.c | |||
@@ -18,7 +18,7 @@ static bool test_con_id(struct sway_container *container, void *data) { | |||
18 | return container->node.id == *con_id; | 18 | return container->node.id == *con_id; |
19 | } | 19 | } |
20 | 20 | ||
21 | #if HAVE_XWAYLAND | 21 | #if WLR_HAS_XWAYLAND |
22 | static bool test_id(struct sway_container *container, void *data) { | 22 | static bool test_id(struct sway_container *container, void *data) { |
23 | xcb_window_t *wid = data; | 23 | xcb_window_t *wid = data; |
24 | return (container->view && container->view->type == SWAY_VIEW_XWAYLAND | 24 | return (container->view && container->view->type == SWAY_VIEW_XWAYLAND |
@@ -53,7 +53,7 @@ struct cmd_results *cmd_swap(int argc, char **argv) { | |||
53 | 53 | ||
54 | char *value = join_args(argv + 3, argc - 3); | 54 | char *value = join_args(argv + 3, argc - 3); |
55 | if (strcasecmp(argv[2], "id") == 0) { | 55 | if (strcasecmp(argv[2], "id") == 0) { |
56 | #if HAVE_XWAYLAND | 56 | #if WLR_HAS_XWAYLAND |
57 | xcb_window_t id = strtol(value, NULL, 0); | 57 | xcb_window_t id = strtol(value, NULL, 0); |
58 | other = root_find_container(test_id, &id); | 58 | other = root_find_container(test_id, &id); |
59 | #endif | 59 | #endif |
diff --git a/sway/commands/xwayland.c b/sway/commands/xwayland.c index 584a8e3a..c0b175fc 100644 --- a/sway/commands/xwayland.c +++ b/sway/commands/xwayland.c | |||
@@ -10,7 +10,7 @@ struct cmd_results *cmd_xwayland(int argc, char **argv) { | |||
10 | return error; | 10 | return error; |
11 | } | 11 | } |
12 | 12 | ||
13 | #ifdef HAVE_XWAYLAND | 13 | #ifdef WLR_HAS_XWAYLAND |
14 | enum xwayland_mode xwayland; | 14 | enum xwayland_mode xwayland; |
15 | if (strcmp(argv[0], "force") == 0) { | 15 | if (strcmp(argv[0], "force") == 0) { |
16 | xwayland = XWAYLAND_MODE_IMMEDIATE; | 16 | xwayland = XWAYLAND_MODE_IMMEDIATE; |
diff --git a/sway/criteria.c b/sway/criteria.c index e16b4fa8..13f0530e 100644 --- a/sway/criteria.c +++ b/sway/criteria.c | |||
@@ -22,7 +22,7 @@ bool criteria_is_empty(struct criteria *criteria) { | |||
22 | && !criteria->app_id | 22 | && !criteria->app_id |
23 | && !criteria->con_mark | 23 | && !criteria->con_mark |
24 | && !criteria->con_id | 24 | && !criteria->con_id |
25 | #if HAVE_XWAYLAND | 25 | #if WLR_HAS_XWAYLAND |
26 | && !criteria->class | 26 | && !criteria->class |
27 | && !criteria->id | 27 | && !criteria->id |
28 | && !criteria->instance | 28 | && !criteria->instance |
@@ -90,7 +90,7 @@ void criteria_destroy(struct criteria *criteria) { | |||
90 | pattern_destroy(criteria->title); | 90 | pattern_destroy(criteria->title); |
91 | pattern_destroy(criteria->shell); | 91 | pattern_destroy(criteria->shell); |
92 | pattern_destroy(criteria->app_id); | 92 | pattern_destroy(criteria->app_id); |
93 | #if HAVE_XWAYLAND | 93 | #if WLR_HAS_XWAYLAND |
94 | pattern_destroy(criteria->class); | 94 | pattern_destroy(criteria->class); |
95 | pattern_destroy(criteria->instance); | 95 | pattern_destroy(criteria->instance); |
96 | pattern_destroy(criteria->window_role); | 96 | pattern_destroy(criteria->window_role); |
@@ -110,7 +110,7 @@ static int regex_cmp(const char *item, const pcre2_code *regex) { | |||
110 | return result; | 110 | return result; |
111 | } | 111 | } |
112 | 112 | ||
113 | #if HAVE_XWAYLAND | 113 | #if WLR_HAS_XWAYLAND |
114 | static bool view_has_window_type(struct sway_view *view, enum atom_name name) { | 114 | static bool view_has_window_type(struct sway_view *view, enum atom_name name) { |
115 | if (view->type != SWAY_VIEW_XWAYLAND) { | 115 | if (view->type != SWAY_VIEW_XWAYLAND) { |
116 | return false; | 116 | return false; |
@@ -251,7 +251,7 @@ static bool criteria_matches_view(struct criteria *criteria, | |||
251 | return false; | 251 | return false; |
252 | } | 252 | } |
253 | 253 | ||
254 | #if HAVE_XWAYLAND | 254 | #if WLR_HAS_XWAYLAND |
255 | if (criteria->id) { // X11 window ID | 255 | if (criteria->id) { // X11 window ID |
256 | uint32_t x11_window_id = view_get_x11_window_id(view); | 256 | uint32_t x11_window_id = view_get_x11_window_id(view); |
257 | if (!x11_window_id || x11_window_id != criteria->id) { | 257 | if (!x11_window_id || x11_window_id != criteria->id) { |
@@ -428,7 +428,7 @@ list_t *criteria_get_containers(struct criteria *criteria) { | |||
428 | return matches; | 428 | return matches; |
429 | } | 429 | } |
430 | 430 | ||
431 | #if HAVE_XWAYLAND | 431 | #if WLR_HAS_XWAYLAND |
432 | static enum atom_name parse_window_type(const char *type) { | 432 | static enum atom_name parse_window_type(const char *type) { |
433 | if (strcasecmp(type, "normal") == 0) { | 433 | if (strcasecmp(type, "normal") == 0) { |
434 | return NET_WM_WINDOW_TYPE_NORMAL; | 434 | return NET_WM_WINDOW_TYPE_NORMAL; |
@@ -461,7 +461,7 @@ enum criteria_token { | |||
461 | T_CON_ID, | 461 | T_CON_ID, |
462 | T_CON_MARK, | 462 | T_CON_MARK, |
463 | T_FLOATING, | 463 | T_FLOATING, |
464 | #if HAVE_XWAYLAND | 464 | #if WLR_HAS_XWAYLAND |
465 | T_CLASS, | 465 | T_CLASS, |
466 | T_ID, | 466 | T_ID, |
467 | T_INSTANCE, | 467 | T_INSTANCE, |
@@ -487,7 +487,7 @@ static enum criteria_token token_from_name(char *name) { | |||
487 | return T_CON_ID; | 487 | return T_CON_ID; |
488 | } else if (strcmp(name, "con_mark") == 0) { | 488 | } else if (strcmp(name, "con_mark") == 0) { |
489 | return T_CON_MARK; | 489 | return T_CON_MARK; |
490 | #if HAVE_XWAYLAND | 490 | #if WLR_HAS_XWAYLAND |
491 | } else if (strcmp(name, "class") == 0) { | 491 | } else if (strcmp(name, "class") == 0) { |
492 | return T_CLASS; | 492 | return T_CLASS; |
493 | } else if (strcmp(name, "id") == 0) { | 493 | } else if (strcmp(name, "id") == 0) { |
@@ -566,7 +566,7 @@ static bool parse_token(struct criteria *criteria, char *name, char *value) { | |||
566 | case T_CON_MARK: | 566 | case T_CON_MARK: |
567 | pattern_create(&criteria->con_mark, value); | 567 | pattern_create(&criteria->con_mark, value); |
568 | break; | 568 | break; |
569 | #if HAVE_XWAYLAND | 569 | #if WLR_HAS_XWAYLAND |
570 | case T_CLASS: | 570 | case T_CLASS: |
571 | pattern_create(&criteria->class, value); | 571 | pattern_create(&criteria->class, value); |
572 | break; | 572 | break; |
@@ -674,7 +674,7 @@ struct criteria *criteria_parse(char *raw, char **error_arg) { | |||
674 | ++head; | 674 | ++head; |
675 | 675 | ||
676 | struct criteria *criteria = calloc(1, sizeof(struct criteria)); | 676 | struct criteria *criteria = calloc(1, sizeof(struct criteria)); |
677 | #if HAVE_XWAYLAND | 677 | #if WLR_HAS_XWAYLAND |
678 | criteria->window_type = ATOM_LAST; // default value | 678 | criteria->window_type = ATOM_LAST; // default value |
679 | #endif | 679 | #endif |
680 | char *name = NULL, *value = NULL; | 680 | char *name = NULL, *value = NULL; |
diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index 042141ab..e464ff1a 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c | |||
@@ -761,7 +761,7 @@ static bool should_configure(struct sway_node *node, | |||
761 | } | 761 | } |
762 | struct sway_container_state *cstate = &node->sway_container->current; | 762 | struct sway_container_state *cstate = &node->sway_container->current; |
763 | struct sway_container_state *istate = &instruction->container_state; | 763 | struct sway_container_state *istate = &instruction->container_state; |
764 | #if HAVE_XWAYLAND | 764 | #if WLR_HAS_XWAYLAND |
765 | // Xwayland views are position-aware and need to be reconfigured | 765 | // Xwayland views are position-aware and need to be reconfigured |
766 | // when their position changes. | 766 | // when their position changes. |
767 | if (node->sway_container->view->type == SWAY_VIEW_XWAYLAND) { | 767 | if (node->sway_container->view->type == SWAY_VIEW_XWAYLAND) { |
diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 3d04826c..0b4a36d9 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c | |||
@@ -107,7 +107,7 @@ struct sway_node *node_at_coords( | |||
107 | return NULL; | 107 | return NULL; |
108 | } | 108 | } |
109 | 109 | ||
110 | #if HAVE_XWAYLAND | 110 | #if WLR_HAS_XWAYLAND |
111 | if (scene_descriptor_try_get(current, SWAY_SCENE_DESC_XWAYLAND_UNMANAGED)) { | 111 | if (scene_descriptor_try_get(current, SWAY_SCENE_DESC_XWAYLAND_UNMANAGED)) { |
112 | return NULL; | 112 | return NULL; |
113 | } | 113 | } |
diff --git a/sway/input/seat.c b/sway/input/seat.c index 0c5672bc..da4bb12a 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -190,7 +190,7 @@ static void seat_send_focus(struct sway_node *node, struct sway_seat *seat) { | |||
190 | node->sway_container->view : NULL; | 190 | node->sway_container->view : NULL; |
191 | 191 | ||
192 | if (view && seat_is_input_allowed(seat, view->surface)) { | 192 | if (view && seat_is_input_allowed(seat, view->surface)) { |
193 | #if HAVE_XWAYLAND | 193 | #if WLR_HAS_XWAYLAND |
194 | if (view->type == SWAY_VIEW_XWAYLAND) { | 194 | if (view->type == SWAY_VIEW_XWAYLAND) { |
195 | struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; | 195 | struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; |
196 | wlr_xwayland_set_seat(xwayland, seat->wlr_seat); | 196 | wlr_xwayland_set_seat(xwayland, seat->wlr_seat); |
@@ -1002,7 +1002,7 @@ void seat_configure_xcursor(struct sway_seat *seat) { | |||
1002 | setenv("XCURSOR_THEME", cursor_theme, 1); | 1002 | setenv("XCURSOR_THEME", cursor_theme, 1); |
1003 | } | 1003 | } |
1004 | 1004 | ||
1005 | #if HAVE_XWAYLAND | 1005 | #if WLR_HAS_XWAYLAND |
1006 | if (server.xwayland.wlr_xwayland && (!server.xwayland.xcursor_manager || | 1006 | if (server.xwayland.wlr_xwayland && (!server.xwayland.xcursor_manager || |
1007 | !xcursor_manager_is_named(server.xwayland.xcursor_manager, | 1007 | !xcursor_manager_is_named(server.xwayland.xcursor_manager, |
1008 | cursor_theme) || | 1008 | cursor_theme) || |
diff --git a/sway/input/seatop_default.c b/sway/input/seatop_default.c index 0c6f7c5e..e01fa933 100644 --- a/sway/input/seatop_default.c +++ b/sway/input/seatop_default.c | |||
@@ -15,7 +15,7 @@ | |||
15 | #include "sway/tree/view.h" | 15 | #include "sway/tree/view.h" |
16 | #include "sway/tree/workspace.h" | 16 | #include "sway/tree/workspace.h" |
17 | #include "log.h" | 17 | #include "log.h" |
18 | #if HAVE_XWAYLAND | 18 | #if WLR_HAS_XWAYLAND |
19 | #include "sway/xwayland.h" | 19 | #include "sway/xwayland.h" |
20 | #endif | 20 | #endif |
21 | 21 | ||
@@ -234,7 +234,7 @@ static void handle_tablet_tool_tip(struct sway_seat *seat, | |||
234 | node->sway_container : NULL; | 234 | node->sway_container : NULL; |
235 | 235 | ||
236 | struct wlr_layer_surface_v1 *layer; | 236 | struct wlr_layer_surface_v1 *layer; |
237 | #if HAVE_XWAYLAND | 237 | #if WLR_HAS_XWAYLAND |
238 | struct wlr_xwayland_surface *xsurface; | 238 | struct wlr_xwayland_surface *xsurface; |
239 | #endif | 239 | #endif |
240 | if ((layer = wlr_layer_surface_v1_try_from_wlr_surface(surface)) && | 240 | if ((layer = wlr_layer_surface_v1_try_from_wlr_surface(surface)) && |
@@ -268,7 +268,7 @@ static void handle_tablet_tool_tip(struct sway_seat *seat, | |||
268 | seat_set_focus_container(seat, cont); | 268 | seat_set_focus_container(seat, cont); |
269 | seatop_begin_down(seat, node->sway_container, sx, sy); | 269 | seatop_begin_down(seat, node->sway_container, sx, sy); |
270 | } | 270 | } |
271 | #if HAVE_XWAYLAND | 271 | #if WLR_HAS_XWAYLAND |
272 | // Handle tapping on an xwayland unmanaged view | 272 | // Handle tapping on an xwayland unmanaged view |
273 | else if ((xsurface = wlr_xwayland_surface_try_from_wlr_surface(surface)) && | 273 | else if ((xsurface = wlr_xwayland_surface_try_from_wlr_surface(surface)) && |
274 | xsurface->override_redirect && | 274 | xsurface->override_redirect && |
@@ -514,7 +514,7 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec, | |||
514 | return; | 514 | return; |
515 | } | 515 | } |
516 | 516 | ||
517 | #if HAVE_XWAYLAND | 517 | #if WLR_HAS_XWAYLAND |
518 | // Handle clicking on xwayland unmanaged view | 518 | // Handle clicking on xwayland unmanaged view |
519 | struct wlr_xwayland_surface *xsurface; | 519 | struct wlr_xwayland_surface *xsurface; |
520 | if (surface && | 520 | if (surface && |
diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 81ca3483..b7370aa6 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c | |||
@@ -154,7 +154,7 @@ static json_object *ipc_json_output_mode_description( | |||
154 | return mode_object; | 154 | return mode_object; |
155 | } | 155 | } |
156 | 156 | ||
157 | #if HAVE_XWAYLAND | 157 | #if WLR_HAS_XWAYLAND |
158 | static const char *ipc_json_xwindow_type_description(struct sway_view *view) { | 158 | static const char *ipc_json_xwindow_type_description(struct sway_view *view) { |
159 | struct wlr_xwayland_surface *surface = view->wlr_xwayland_surface; | 159 | struct wlr_xwayland_surface *surface = view->wlr_xwayland_surface; |
160 | struct sway_xwayland *xwayland = &server.xwayland; | 160 | struct sway_xwayland *xwayland = &server.xwayland; |
@@ -633,7 +633,7 @@ static void ipc_json_describe_view(struct sway_container *c, json_object *object | |||
633 | json_object_new_string(ipc_json_content_type_description(content_type))); | 633 | json_object_new_string(ipc_json_content_type_description(content_type))); |
634 | } | 634 | } |
635 | 635 | ||
636 | #if HAVE_XWAYLAND | 636 | #if WLR_HAS_XWAYLAND |
637 | if (c->view->type == SWAY_VIEW_XWAYLAND) { | 637 | if (c->view->type == SWAY_VIEW_XWAYLAND) { |
638 | json_object_object_add(object, "window", | 638 | json_object_object_add(object, "window", |
639 | json_object_new_int(view_get_x11_window_id(c->view))); | 639 | json_object_new_int(view_get_x11_window_id(c->view))); |
diff --git a/sway/meson.build b/sway/meson.build index d937e425..47b51d0c 100644 --- a/sway/meson.build +++ b/sway/meson.build | |||
@@ -231,7 +231,7 @@ sway_deps = [ | |||
231 | xcb_icccm, | 231 | xcb_icccm, |
232 | ] | 232 | ] |
233 | 233 | ||
234 | if have_xwayland | 234 | if wlroots_features['xwayland'] |
235 | sway_sources += 'desktop/xwayland.c' | 235 | sway_sources += 'desktop/xwayland.c' |
236 | endif | 236 | endif |
237 | 237 | ||
diff --git a/sway/server.c b/sway/server.c index 180d3a6b..4b48e8e5 100644 --- a/sway/server.c +++ b/sway/server.c | |||
@@ -56,7 +56,7 @@ | |||
56 | #include "sway/input/cursor.h" | 56 | #include "sway/input/cursor.h" |
57 | #include "sway/tree/root.h" | 57 | #include "sway/tree/root.h" |
58 | 58 | ||
59 | #if HAVE_XWAYLAND | 59 | #if WLR_HAS_XWAYLAND |
60 | #include <wlr/xwayland/shell.h> | 60 | #include <wlr/xwayland/shell.h> |
61 | #include "sway/xwayland.h" | 61 | #include "sway/xwayland.h" |
62 | #endif | 62 | #endif |
@@ -118,7 +118,7 @@ static bool is_privileged(const struct wl_global *global) { | |||
118 | 118 | ||
119 | static bool filter_global(const struct wl_client *client, | 119 | static bool filter_global(const struct wl_client *client, |
120 | const struct wl_global *global, void *data) { | 120 | const struct wl_global *global, void *data) { |
121 | #if HAVE_XWAYLAND | 121 | #if WLR_HAS_XWAYLAND |
122 | struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; | 122 | struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; |
123 | if (xwayland && global == xwayland->shell_v1->global) { | 123 | if (xwayland && global == xwayland->shell_v1->global) { |
124 | return xwayland->server != NULL && client == xwayland->server->client; | 124 | return xwayland->server != NULL && client == xwayland->server->client; |
@@ -437,7 +437,7 @@ bool server_init(struct sway_server *server) { | |||
437 | 437 | ||
438 | void server_fini(struct sway_server *server) { | 438 | void server_fini(struct sway_server *server) { |
439 | // TODO: free sway-specific resources | 439 | // TODO: free sway-specific resources |
440 | #if HAVE_XWAYLAND | 440 | #if WLR_HAS_XWAYLAND |
441 | wlr_xwayland_destroy(server->xwayland.wlr_xwayland); | 441 | wlr_xwayland_destroy(server->xwayland.wlr_xwayland); |
442 | #endif | 442 | #endif |
443 | wl_display_destroy_clients(server->wl_display); | 443 | wl_display_destroy_clients(server->wl_display); |
@@ -447,7 +447,7 @@ void server_fini(struct sway_server *server) { | |||
447 | } | 447 | } |
448 | 448 | ||
449 | bool server_start(struct sway_server *server) { | 449 | bool server_start(struct sway_server *server) { |
450 | #if HAVE_XWAYLAND | 450 | #if WLR_HAS_XWAYLAND |
451 | if (config->xwayland != XWAYLAND_MODE_DISABLED) { | 451 | if (config->xwayland != XWAYLAND_MODE_DISABLED) { |
452 | sway_log(SWAY_DEBUG, "Initializing Xwayland (lazy=%d)", | 452 | sway_log(SWAY_DEBUG, "Initializing Xwayland (lazy=%d)", |
453 | config->xwayland == XWAYLAND_MODE_LAZY); | 453 | config->xwayland == XWAYLAND_MODE_LAZY); |
diff --git a/sway/tree/root.c b/sway/tree/root.c index ae3c3cb2..20fcfa59 100644 --- a/sway/tree/root.c +++ b/sway/tree/root.c | |||
@@ -53,7 +53,7 @@ struct sway_root *root_create(struct wl_display *wl_display) { | |||
53 | root->layers.shell_top = alloc_scene_tree(root->layer_tree, &failed); | 53 | root->layers.shell_top = alloc_scene_tree(root->layer_tree, &failed); |
54 | root->layers.fullscreen = alloc_scene_tree(root->layer_tree, &failed); | 54 | root->layers.fullscreen = alloc_scene_tree(root->layer_tree, &failed); |
55 | root->layers.fullscreen_global = alloc_scene_tree(root->layer_tree, &failed); | 55 | root->layers.fullscreen_global = alloc_scene_tree(root->layer_tree, &failed); |
56 | #if HAVE_XWAYLAND | 56 | #if WLR_HAS_XWAYLAND |
57 | root->layers.unmanaged = alloc_scene_tree(root->layer_tree, &failed); | 57 | root->layers.unmanaged = alloc_scene_tree(root->layer_tree, &failed); |
58 | #endif | 58 | #endif |
59 | root->layers.shell_overlay = alloc_scene_tree(root->layer_tree, &failed); | 59 | root->layers.shell_overlay = alloc_scene_tree(root->layer_tree, &failed); |
diff --git a/sway/tree/view.c b/sway/tree/view.c index 35b4b73f..9a87d9e2 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include <strings.h> | 2 | #include <strings.h> |
3 | #include <wayland-server-core.h> | 3 | #include <wayland-server-core.h> |
4 | #include <wlr/config.h> | ||
4 | #include <wlr/render/wlr_renderer.h> | 5 | #include <wlr/render/wlr_renderer.h> |
5 | #include <wlr/types/wlr_buffer.h> | 6 | #include <wlr/types/wlr_buffer.h> |
6 | #include <wlr/types/wlr_ext_foreign_toplevel_list_v1.h> | 7 | #include <wlr/types/wlr_ext_foreign_toplevel_list_v1.h> |
@@ -9,8 +10,7 @@ | |||
9 | #include <wlr/types/wlr_server_decoration.h> | 10 | #include <wlr/types/wlr_server_decoration.h> |
10 | #include <wlr/types/wlr_subcompositor.h> | 11 | #include <wlr/types/wlr_subcompositor.h> |
11 | #include <wlr/types/wlr_xdg_decoration_v1.h> | 12 | #include <wlr/types/wlr_xdg_decoration_v1.h> |
12 | #include "config.h" | 13 | #if WLR_HAS_XWAYLAND |
13 | #if HAVE_XWAYLAND | ||
14 | #include <wlr/xwayland.h> | 14 | #include <wlr/xwayland.h> |
15 | #endif | 15 | #endif |
16 | #include "list.h" | 16 | #include "list.h" |
@@ -126,7 +126,7 @@ const char *view_get_instance(struct sway_view *view) { | |||
126 | } | 126 | } |
127 | return NULL; | 127 | return NULL; |
128 | } | 128 | } |
129 | #if HAVE_XWAYLAND | 129 | #if WLR_HAS_XWAYLAND |
130 | uint32_t view_get_x11_window_id(struct sway_view *view) { | 130 | uint32_t view_get_x11_window_id(struct sway_view *view) { |
131 | if (view->impl->get_int_prop) { | 131 | if (view->impl->get_int_prop) { |
132 | return view->impl->get_int_prop(view, VIEW_PROP_X11_WINDOW_ID); | 132 | return view->impl->get_int_prop(view, VIEW_PROP_X11_WINDOW_ID); |
@@ -159,7 +159,7 @@ const char *view_get_shell(struct sway_view *view) { | |||
159 | switch(view->type) { | 159 | switch(view->type) { |
160 | case SWAY_VIEW_XDG_SHELL: | 160 | case SWAY_VIEW_XDG_SHELL: |
161 | return "xdg_shell"; | 161 | return "xdg_shell"; |
162 | #if HAVE_XWAYLAND | 162 | #if WLR_HAS_XWAYLAND |
163 | case SWAY_VIEW_XWAYLAND: | 163 | case SWAY_VIEW_XWAYLAND: |
164 | return "xwayland"; | 164 | return "xwayland"; |
165 | #endif | 165 | #endif |
@@ -499,7 +499,7 @@ void view_execute_criteria(struct sway_view *view) { | |||
499 | static void view_populate_pid(struct sway_view *view) { | 499 | static void view_populate_pid(struct sway_view *view) { |
500 | pid_t pid; | 500 | pid_t pid; |
501 | switch (view->type) { | 501 | switch (view->type) { |
502 | #if HAVE_XWAYLAND | 502 | #if WLR_HAS_XWAYLAND |
503 | case SWAY_VIEW_XWAYLAND:; | 503 | case SWAY_VIEW_XWAYLAND:; |
504 | struct wlr_xwayland_surface *surf = | 504 | struct wlr_xwayland_surface *surf = |
505 | wlr_xwayland_surface_try_from_wlr_surface(view->surface); | 505 | wlr_xwayland_surface_try_from_wlr_surface(view->surface); |
@@ -838,7 +838,7 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface, | |||
838 | 838 | ||
839 | bool set_focus = should_focus(view); | 839 | bool set_focus = should_focus(view); |
840 | 840 | ||
841 | #if HAVE_XWAYLAND | 841 | #if WLR_HAS_XWAYLAND |
842 | struct wlr_xwayland_surface *xsurface; | 842 | struct wlr_xwayland_surface *xsurface; |
843 | if ((xsurface = wlr_xwayland_surface_try_from_wlr_surface(wlr_surface))) { | 843 | if ((xsurface = wlr_xwayland_surface_try_from_wlr_surface(wlr_surface))) { |
844 | set_focus &= wlr_xwayland_icccm_input_model(xsurface) != | 844 | set_focus &= wlr_xwayland_icccm_input_model(xsurface) != |
@@ -954,7 +954,7 @@ struct sway_view *view_from_wlr_surface(struct wlr_surface *wlr_surface) { | |||
954 | if ((xdg_surface = wlr_xdg_surface_try_from_wlr_surface(wlr_surface))) { | 954 | if ((xdg_surface = wlr_xdg_surface_try_from_wlr_surface(wlr_surface))) { |
955 | return view_from_wlr_xdg_surface(xdg_surface); | 955 | return view_from_wlr_xdg_surface(xdg_surface); |
956 | } | 956 | } |
957 | #if HAVE_XWAYLAND | 957 | #if WLR_HAS_XWAYLAND |
958 | struct wlr_xwayland_surface *xsurface; | 958 | struct wlr_xwayland_surface *xsurface; |
959 | if ((xsurface = wlr_xwayland_surface_try_from_wlr_surface(wlr_surface))) { | 959 | if ((xsurface = wlr_xwayland_surface_try_from_wlr_surface(wlr_surface))) { |
960 | return view_from_wlr_xwayland_surface(xsurface); | 960 | return view_from_wlr_xwayland_surface(xsurface); |