aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/handlers/layer_shell.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/handlers/layer_shell.rs b/src/handlers/layer_shell.rs
index 7678ccc1..c1b00c30 100644
--- a/src/handlers/layer_shell.rs
+++ b/src/handlers/layer_shell.rs
@@ -176,6 +176,20 @@ impl State {
} else {
self.niri.mapped_layer_surfaces.remove(layer);
self.niri.unmapped_layer_surfaces.insert(surface.clone());
+
+ // After layer surface unmaps it has to perform the initial commit-configure
+ // sequence again. This is a workaround until Smithay properly resets
+ // initial_configure_sent upon the surface unmapping itself as it does for
+ // toplevels.
+ with_states(surface, |states| {
+ let mut data = states
+ .data_map
+ .get::<LayerSurfaceData>()
+ .unwrap()
+ .lock()
+ .unwrap();
+ data.initial_configure_sent = false;
+ });
}
} else {
let scale = output.current_scale();