git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit6539d9e9de2b9995ab9a8d97ca7165d24ad4a025
parent3adfaa352f
authorLucas Galante <[email protected]>
date2026-06-19 14:34
Fix window flicker loop by dirtying rendering instead of windowing in layer shell events

 src/server/layer_shell.rs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/server/layer_shell.rs b/src/server/layer_shell.rs
index ef38c6a..d11d886 100644
--- a/src/server/layer_shell.rs
+++ b/src/server/layer_shell.rs
@@ -488,7 +488,7 @@ unsafe extern "C" fn handle_layer_surface_map(listener: *mut ffi::wl_listener, _
         }
     }
     (*server).layer_shell.check_exclusive_focus();
-    (*server).wm.dirty_windowing();
+    (*server).wm.dirty_rendering();
 }
 
 unsafe extern "C" fn handle_layer_surface_unmap(listener: *mut ffi::wl_listener, _data: *mut std::ffi::c_void) {
@@ -531,7 +531,7 @@ unsafe extern "C" fn handle_layer_surface_unmap(listener: *mut ffi::wl_listener,
         }
     }
     (*server).layer_shell.check_exclusive_focus();
-    (*server).wm.dirty_windowing();
+    (*server).wm.dirty_rendering();
 }
 
 unsafe extern "C" fn handle_layer_surface_commit(listener: *mut ffi::wl_listener, _data: *mut std::ffi::c_void) {
@@ -575,7 +575,7 @@ unsafe extern "C" fn handle_layer_surface_commit(listener: *mut ffi::wl_listener
     if (*wlr_layer_surface).initial_commit || ((*wlr_layer_surface).current.committed != 0) {
         (*output).layer_shell.arrange(output);
         (*server).layer_shell.check_exclusive_focus();
-        (*server).wm.dirty_windowing();
+        (*server).wm.dirty_rendering();
     }
 }