aboutsummaryrefslogtreecommitdiffstats
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-04-18 08:35:28 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-04-18 08:35:28 +1000
commit35ccdd67a89280c1d906ed914d67918cfb382e1f (patch)
tree6800043b2527e9f9baf9dba0f811d6a97a5e2ea3 /sway/desktop/output.c
parentFullscreen fixes. (diff)
downloadsway-35ccdd67a89280c1d906ed914d67918cfb382e1f.tar.gz
sway-35ccdd67a89280c1d906ed914d67918cfb382e1f.tar.zst
sway-35ccdd67a89280c1d906ed914d67918cfb382e1f.zip
More fullscreen fixes.
* Render fullscreen views without wlr function, which makes popups and lockscreen work. * Don't allow input events to surfaces behind fullscreen views. * Use correct output dimensions (for rotated outputs).
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r--sway/desktop/output.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 361a92d0..a5f2f71f 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -229,7 +229,11 @@ static void render_container_iterator(struct sway_container *con,
229 229
230static void render_container(struct sway_output *output, 230static void render_container(struct sway_output *output,
231 struct sway_container *con) { 231 struct sway_container *con) {
232 container_descendants(con, C_VIEW, render_container_iterator, output); 232 if (con->type == C_VIEW) { // Happens if a view is fullscreened
233 render_container_iterator(con, output);
234 } else {
235 container_descendants(con, C_VIEW, render_container_iterator, output);
236 }
233} 237}
234 238
235static struct sway_container *output_get_active_workspace( 239static struct sway_container *output_get_active_workspace(
@@ -277,10 +281,8 @@ static void render_output(struct sway_output *output, struct timespec *when,
277 struct sway_container *workspace = output_get_active_workspace(output); 281 struct sway_container *workspace = output_get_active_workspace(output);
278 282
279 if (workspace->sway_workspace->fullscreen) { 283 if (workspace->sway_workspace->fullscreen) {
280 wlr_output_set_fullscreen_surface(wlr_output, 284 render_container(output, workspace->sway_workspace->fullscreen->swayc);
281 workspace->sway_workspace->fullscreen->surface);
282 } else { 285 } else {
283 wlr_output_set_fullscreen_surface(wlr_output, NULL);
284 render_layer(output, 286 render_layer(output,
285 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]); 287 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
286 render_layer(output, &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]); 288 render_layer(output, &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);