summaryrefslogtreecommitdiffstats
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-07-25 08:27:40 -0400
committerLibravatar GitHub <noreply@github.com>2018-07-25 08:27:40 -0400
commitfc718f629af231f8a0ae795b2f7529e213cab183 (patch)
tree7917aadbfb09d02d3d60045f0ba8d5028f0c4bb4 /sway/desktop/output.c
parentMerge pull request #2354 from RyanDwyer/fix-crash-on-tab-reap (diff)
parentmore style fixes, reorder config.h include (diff)
downloadsway-fc718f629af231f8a0ae795b2f7529e213cab183.tar.gz
sway-fc718f629af231f8a0ae795b2f7529e213cab183.tar.zst
sway-fc718f629af231f8a0ae795b2f7529e213cab183.zip
Merge pull request #2350 from ppascher/xwayland-optional
Added meson option to allow building sway without xwayland support
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r--sway/desktop/output.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index a206ac6b..1512408e 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -14,6 +14,7 @@
14#include <wlr/types/wlr_surface.h> 14#include <wlr/types/wlr_surface.h>
15#include <wlr/util/region.h> 15#include <wlr/util/region.h>
16#include "log.h" 16#include "log.h"
17#include "config.h"
17#include "sway/config.h" 18#include "sway/config.h"
18#include "sway/input/input-manager.h" 19#include "sway/input/input-manager.h"
19#include "sway/input/seat.h" 20#include "sway/input/seat.h"
@@ -128,7 +129,7 @@ void output_layer_for_each_surface(struct wl_list *layer_surfaces,
128 user_data); 129 user_data);
129 } 130 }
130} 131}
131 132#ifdef HAVE_XWAYLAND
132void output_unmanaged_for_each_surface(struct wl_list *unmanaged, 133void output_unmanaged_for_each_surface(struct wl_list *unmanaged,
133 struct sway_output *output, struct root_geometry *geo, 134 struct sway_output *output, struct root_geometry *geo,
134 wlr_surface_iterator_func_t iterator, void *user_data) { 135 wlr_surface_iterator_func_t iterator, void *user_data) {
@@ -143,7 +144,7 @@ void output_unmanaged_for_each_surface(struct wl_list *unmanaged,
143 iterator, user_data); 144 iterator, user_data);
144 } 145 }
145} 146}
146 147#endif
147void output_drag_icons_for_each_surface(struct wl_list *drag_icons, 148void output_drag_icons_for_each_surface(struct wl_list *drag_icons,
148 struct sway_output *output, struct root_geometry *geo, 149 struct sway_output *output, struct root_geometry *geo,
149 wlr_surface_iterator_func_t iterator, void *user_data) { 150 wlr_surface_iterator_func_t iterator, void *user_data) {
@@ -244,13 +245,13 @@ static void send_frame_done_layer(struct send_frame_done_data *data,
244 output_layer_for_each_surface(layer_surfaces, &data->root_geo, 245 output_layer_for_each_surface(layer_surfaces, &data->root_geo,
245 send_frame_done_iterator, data); 246 send_frame_done_iterator, data);
246} 247}
247 248#ifdef HAVE_XWAYLAND
248static void send_frame_done_unmanaged(struct send_frame_done_data *data, 249static void send_frame_done_unmanaged(struct send_frame_done_data *data,
249 struct wl_list *unmanaged) { 250 struct wl_list *unmanaged) {
250 output_unmanaged_for_each_surface(unmanaged, data->output, &data->root_geo, 251 output_unmanaged_for_each_surface(unmanaged, data->output, &data->root_geo,
251 send_frame_done_iterator, data); 252 send_frame_done_iterator, data);
252} 253}
253 254#endif
254static void send_frame_done_drag_icons(struct send_frame_done_data *data, 255static void send_frame_done_drag_icons(struct send_frame_done_data *data,
255 struct wl_list *drag_icons) { 256 struct wl_list *drag_icons) {
256 output_drag_icons_for_each_surface(drag_icons, data->output, &data->root_geo, 257 output_drag_icons_for_each_surface(drag_icons, data->output, &data->root_geo,
@@ -291,11 +292,12 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
291 if (workspace->current.ws_fullscreen) { 292 if (workspace->current.ws_fullscreen) {
292 send_frame_done_container_iterator( 293 send_frame_done_container_iterator(
293 workspace->current.ws_fullscreen->swayc, &data); 294 workspace->current.ws_fullscreen->swayc, &data);
294 295#ifdef HAVE_XWAYLAND
295 if (workspace->current.ws_fullscreen->type == SWAY_VIEW_XWAYLAND) { 296 if (workspace->current.ws_fullscreen->type == SWAY_VIEW_XWAYLAND) {
296 send_frame_done_unmanaged(&data, 297 send_frame_done_unmanaged(&data,
297 &root_container.sway_root->xwayland_unmanaged); 298 &root_container.sway_root->xwayland_unmanaged);
298 } 299 }
300#endif
299 } else { 301 } else {
300 send_frame_done_layer(&data, 302 send_frame_done_layer(&data,
301 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]); 303 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
@@ -305,8 +307,10 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
305 send_frame_done_container(&data, workspace); 307 send_frame_done_container(&data, workspace);
306 send_frame_done_container(&data, workspace->sway_workspace->floating); 308 send_frame_done_container(&data, workspace->sway_workspace->floating);
307 309
310#ifdef HAVE_XWAYLAND
308 send_frame_done_unmanaged(&data, 311 send_frame_done_unmanaged(&data,
309 &root_container.sway_root->xwayland_unmanaged); 312 &root_container.sway_root->xwayland_unmanaged);
313#endif
310 send_frame_done_layer(&data, 314 send_frame_done_layer(&data,
311 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]); 315 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
312 } 316 }