mirror of
https://github.com/swaywm/sway.git
synced 2024-11-29 03:11:27 +00:00
layer-shell: wait for an initial commit before configuring
This commit is contained in:
parent
904d256581
commit
8d1b0cecd9
|
@ -324,10 +324,15 @@ static void handle_surface_commit(struct wl_listener *listener, void *data) {
|
||||||
struct wlr_output *wlr_output = layer_surface->output;
|
struct wlr_output *wlr_output = layer_surface->output;
|
||||||
sway_assert(wlr_output, "wlr_layer_surface_v1 has null output");
|
sway_assert(wlr_output, "wlr_layer_surface_v1 has null output");
|
||||||
struct sway_output *output = wlr_output->data;
|
struct sway_output *output = wlr_output->data;
|
||||||
|
|
||||||
|
if (layer_surface->initial_commit) {
|
||||||
|
surface_enter_output(layer_surface->surface, output);
|
||||||
|
}
|
||||||
|
|
||||||
struct wlr_box old_extent = layer->extent;
|
struct wlr_box old_extent = layer->extent;
|
||||||
|
|
||||||
bool layer_changed = false;
|
bool layer_changed = false;
|
||||||
if (layer_surface->current.committed != 0
|
if (layer_surface->initial_commit || layer_surface->current.committed != 0
|
||||||
|| layer->mapped != layer_surface->surface->mapped) {
|
|| layer->mapped != layer_surface->surface->mapped) {
|
||||||
layer->mapped = layer_surface->surface->mapped;
|
layer->mapped = layer_surface->surface->mapped;
|
||||||
layer_changed = layer->layer != layer_surface->current.layer;
|
layer_changed = layer->layer != layer_surface->current.layer;
|
||||||
|
@ -708,13 +713,4 @@ void handle_layer_shell_surface(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
wl_list_insert(&output->layers[layer_surface->pending.layer],
|
wl_list_insert(&output->layers[layer_surface->pending.layer],
|
||||||
&sway_layer->link);
|
&sway_layer->link);
|
||||||
|
|
||||||
surface_enter_output(layer_surface->surface, output);
|
|
||||||
|
|
||||||
// Temporarily set the layer's current state to pending
|
|
||||||
// So that we can easily arrange it
|
|
||||||
struct wlr_layer_surface_v1_state old_state = layer_surface->current;
|
|
||||||
layer_surface->current = layer_surface->pending;
|
|
||||||
arrange_layers(output);
|
|
||||||
layer_surface->current = old_state;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue