aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-04-18 08:35:28 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-04-18 08:35:28 +1000
commit35ccdd67a89280c1d906ed914d67918cfb382e1f (patch)
tree6800043b2527e9f9baf9dba0f811d6a97a5e2ea3 /sway/desktop
parent72beae209b03815e39d0aaa11348fa17c8a7bca9 (diff)
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')
-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,
static void render_container(struct sway_output *output,
struct sway_container *con) {
- container_descendants(con, C_VIEW, render_container_iterator, output);
+ if (con->type == C_VIEW) { // Happens if a view is fullscreened
+ render_container_iterator(con, output);
+ } else {
+ container_descendants(con, C_VIEW, render_container_iterator, output);
+ }
}
static struct sway_container *output_get_active_workspace(
@@ -277,10 +281,8 @@ static void render_output(struct sway_output *output, struct timespec *when,
struct sway_container *workspace = output_get_active_workspace(output);
if (workspace->sway_workspace->fullscreen) {
- wlr_output_set_fullscreen_surface(wlr_output,
- workspace->sway_workspace->fullscreen->surface);
+ render_container(output, workspace->sway_workspace->fullscreen->swayc);
} else {
- wlr_output_set_fullscreen_surface(wlr_output, NULL);
render_layer(output,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
render_layer(output, &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);