diff options
author | Simon Ser <contact@emersion.fr> | 2023-02-20 10:29:25 +0100 |
---|---|---|
committer | Kenny Levinsen <kl@kl.wtf> | 2023-02-20 12:20:42 +0100 |
commit | 7d2e4a51063ac90f950cb44f141ab391cbcaff5f (patch) | |
tree | 31e691356b28b8ca57f17d1009eebe5c4c8b3610 | |
parent | Update surface fractional scale on output change (diff) | |
download | sway-7d2e4a51063ac90f950cb44f141ab391cbcaff5f.tar.gz sway-7d2e4a51063ac90f950cb44f141ab391cbcaff5f.tar.zst sway-7d2e4a51063ac90f950cb44f141ab391cbcaff5f.zip |
layer-shell: enter output before surface is mapped
This sends fractional-scale-v1 events before the first configure
event. That way clients have all of the metadata they need to render
the first frame.
-rw-r--r-- | sway/desktop/layer_shell.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c index 795eb4cd..e16bee78 100644 --- a/sway/desktop/layer_shell.c +++ b/sway/desktop/layer_shell.c | |||
@@ -383,7 +383,6 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
383 | struct sway_output *output = wlr_output->data; | 383 | struct sway_output *output = wlr_output->data; |
384 | output_damage_surface(output, sway_layer->geo.x, sway_layer->geo.y, | 384 | output_damage_surface(output, sway_layer->geo.x, sway_layer->geo.y, |
385 | sway_layer->layer_surface->surface, true); | 385 | sway_layer->layer_surface->surface, true); |
386 | surface_enter_output(sway_layer->layer_surface->surface, output); | ||
387 | cursor_rebase_all(); | 386 | cursor_rebase_all(); |
388 | } | 387 | } |
389 | 388 | ||
@@ -679,6 +678,8 @@ void handle_layer_shell_surface(struct wl_listener *listener, void *data) { | |||
679 | wl_list_insert(&output->layers[layer_surface->pending.layer], | 678 | wl_list_insert(&output->layers[layer_surface->pending.layer], |
680 | &sway_layer->link); | 679 | &sway_layer->link); |
681 | 680 | ||
681 | surface_enter_output(layer_surface->surface, output); | ||
682 | |||
682 | // Temporarily set the layer's current state to pending | 683 | // Temporarily set the layer's current state to pending |
683 | // So that we can easily arrange it | 684 | // So that we can easily arrange it |
684 | struct wlr_layer_surface_v1_state old_state = layer_surface->current; | 685 | struct wlr_layer_surface_v1_state old_state = layer_surface->current; |