Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
fix: keep blur during viewport pan for all cce-* apps
Previously only cce-data-editor kept its backdrop blur during active
viewport zoom/pan; every other cce-* app had blur disabled for the
duration of the motion. Because these apps use translucent backgrounds,
toggling blur off/on across pan frames made them flicker. Broaden the
exception to all cce-* app_ids so the blur stays stable through the pan.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
src/server/window.rs | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/server/window.rs b/src/server/window.rs
index 835ccb3..da0cacb 100644
--- a/src/server/window.rs
+++ b/src/server/window.rs
@@ -2098,9 +2098,10 @@ impl Window {
ffi::river_scene_node_set_position_if_changed(self.popup_tree as *mut ffi::wlr_scene_node, self.box_geom.x, self.box_geom.y);
// Disable backdrop blur during active viewport zoom/pan for maximum performance,
- // EXCEPT for the data editor window (app_id: "cce-data-editor") which we want to keep blurred.
+ // EXCEPT for cce-* apps, which we keep blurred during the pan so their translucent
+ // backgrounds don't flicker as blur toggles on/off across motion frames.
let app_id = self.get_app_id_string().unwrap_or_default();
- if app_id.starts_with("cce-data-editor") {
+ if app_id.starts_with("cce-") {
let is_status = self.tiling_mode == crate::tiling::TilingMode::Status ||
app_id.starts_with("cce-status");
let is_cce_app = app_id.starts_with("cce-");