aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'sway/desktop')
-rw-r--r--sway/desktop/output.c14
-rw-r--r--sway/desktop/render.c11
-rw-r--r--sway/desktop/xdg_shell.c3
-rw-r--r--sway/desktop/xdg_shell_v6.c3
-rw-r--r--sway/desktop/xwayland.c3
5 files changed, 16 insertions, 18 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index cbd6ef86..1764b4e3 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -14,6 +14,7 @@
#include <wlr/types/wlr_surface.h>
#include <wlr/util/region.h>
#include "log.h"
+#include "config.h"
#include "sway/config.h"
#include "sway/input/input-manager.h"
#include "sway/input/seat.h"
@@ -128,7 +129,7 @@ void output_layer_for_each_surface(struct wl_list *layer_surfaces,
user_data);
}
}
-
+#ifdef HAVE_XWAYLAND
void output_unmanaged_for_each_surface(struct wl_list *unmanaged,
struct sway_output *output, struct root_geometry *geo,
wlr_surface_iterator_func_t iterator, void *user_data) {
@@ -143,7 +144,7 @@ void output_unmanaged_for_each_surface(struct wl_list *unmanaged,
iterator, user_data);
}
}
-
+#endif
void output_drag_icons_for_each_surface(struct wl_list *drag_icons,
struct sway_output *output, struct root_geometry *geo,
wlr_surface_iterator_func_t iterator, void *user_data) {
@@ -232,13 +233,13 @@ static void send_frame_done_layer(struct send_frame_done_data *data,
output_layer_for_each_surface(layer_surfaces, &data->root_geo,
send_frame_done_iterator, data);
}
-
+#ifdef HAVE_XWAYLAND
static void send_frame_done_unmanaged(struct send_frame_done_data *data,
struct wl_list *unmanaged) {
output_unmanaged_for_each_surface(unmanaged, data->output, &data->root_geo,
send_frame_done_iterator, data);
}
-
+#endif
static void send_frame_done_drag_icons(struct send_frame_done_data *data,
struct wl_list *drag_icons) {
output_drag_icons_for_each_surface(drag_icons, data->output, &data->root_geo,
@@ -280,11 +281,12 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
if (workspace->current.ws_fullscreen) {
send_frame_done_container_iterator(
workspace->current.ws_fullscreen->swayc, &data);
-
+#ifdef HAVE_XWAYLAND
if (workspace->current.ws_fullscreen->type == SWAY_VIEW_XWAYLAND) {
send_frame_done_unmanaged(&data,
&root_container.sway_root->xwayland_unmanaged);
}
+#endif
} else {
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
@@ -294,8 +296,10 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
send_frame_done_container(&data, workspace);
send_frame_done_container(&data, workspace->sway_workspace->floating);
+#ifdef HAVE_XWAYLAND
send_frame_done_unmanaged(&data,
&root_container.sway_root->xwayland_unmanaged);
+#endif
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
}
diff --git a/sway/desktop/render.c b/sway/desktop/render.c
index d6c3fa8c..15c5b94c 100644
--- a/sway/desktop/render.c
+++ b/sway/desktop/render.c
@@ -14,6 +14,7 @@
#include <wlr/types/wlr_surface.h>
#include <wlr/util/region.h>
#include "log.h"
+#include "config.h"
#include "sway/config.h"
#include "sway/debug.h"
#include "sway/input/input-manager.h"
@@ -132,7 +133,7 @@ static void render_layer(struct sway_output *output,
output_layer_for_each_surface(layer_surfaces, &data.root_geo,
render_surface_iterator, &data);
}
-
+#ifdef HAVE_XWAYLAND
static void render_unmanaged(struct sway_output *output,
pixman_region32_t *damage, struct wl_list *unmanaged) {
struct render_data data = {
@@ -143,7 +144,7 @@ static void render_unmanaged(struct sway_output *output,
output_unmanaged_for_each_surface(unmanaged, output, &data.root_geo,
render_surface_iterator, &data);
}
-
+#endif
static void render_drag_icons(struct sway_output *output,
pixman_region32_t *damage, struct wl_list *drag_icons) {
struct render_data data = {
@@ -857,11 +858,12 @@ void output_render(struct sway_output *output, struct timespec *when,
} else {
render_view_surfaces(fullscreen_view, output, damage, 1.0f);
}
-
+#ifdef HAVE_XWAYLAND
if (fullscreen_view->type == SWAY_VIEW_XWAYLAND) {
render_unmanaged(output, damage,
&root_container.sway_root->xwayland_unmanaged);
}
+#endif
} else {
float clear_color[] = {0.25f, 0.25f, 0.25f, 1.0f};
@@ -879,9 +881,10 @@ void output_render(struct sway_output *output, struct timespec *when,
render_container(output, damage, workspace, workspace->current.focused);
render_floating(output, damage);
-
+#ifdef HAVE_XWAYLAND
render_unmanaged(output, damage,
&root_container.sway_root->xwayland_unmanaged);
+#endif
render_layer(output, damage,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
}
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c
index 62c3abc8..f3e4fef8 100644
--- a/sway/desktop/xdg_shell.c
+++ b/sway/desktop/xdg_shell.c
@@ -418,9 +418,6 @@ void handle_xdg_shell_surface(struct wl_listener *listener, void *data) {
view_init(&xdg_shell_view->view, SWAY_VIEW_XDG_SHELL, &view_impl);
xdg_shell_view->view.wlr_xdg_surface = xdg_surface;
- // TODO:
- // - Look up pid and open on appropriate workspace
-
xdg_shell_view->map.notify = handle_map;
wl_signal_add(&xdg_surface->events.map, &xdg_shell_view->map);
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c
index 7fb85410..46fd4769 100644
--- a/sway/desktop/xdg_shell_v6.c
+++ b/sway/desktop/xdg_shell_v6.c
@@ -409,9 +409,6 @@ void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data) {
view_init(&xdg_shell_v6_view->view, SWAY_VIEW_XDG_SHELL_V6, &view_impl);
xdg_shell_v6_view->view.wlr_xdg_surface_v6 = xdg_surface;
- // TODO:
- // - Look up pid and open on appropriate workspace
-
xdg_shell_v6_view->map.notify = handle_map;
wl_signal_add(&xdg_surface->events.map, &xdg_shell_v6_view->map);
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c
index 2546168b..65d4fcd4 100644
--- a/sway/desktop/xwayland.c
+++ b/sway/desktop/xwayland.c
@@ -514,9 +514,6 @@ void handle_xwayland_surface(struct wl_listener *listener, void *data) {
view_init(&xwayland_view->view, SWAY_VIEW_XWAYLAND, &view_impl);
xwayland_view->view.wlr_xwayland_surface = xsurface;
- // TODO:
- // - Look up pid and open on appropriate workspace
-
wl_signal_add(&xsurface->events.destroy, &xwayland_view->destroy);
xwayland_view->destroy.notify = handle_destroy;