Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
Scale explicit blur bounds by output scale factor
src/server/window.rs | 9 +++++----
src/server/xdg_toplevel.rs | 9 +++++----
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/server/window.rs b/src/server/window.rs
index c52c8b9..c363c6e 100644
--- a/src/server/window.rs
+++ b/src/server/window.rs
@@ -1539,10 +1539,11 @@ impl Window {
if app_id.starts_with("cce-status") {
ignore_transparent = (*self.server).wm.layout.status_backdrop_blur_ignore_transparent;
}
- let geom_x = self.rendering_requested.x;
- let geom_y = self.rendering_requested.y;
- let geom_w = self.rendering_sent.width as i32;
- let geom_h = self.rendering_sent.height as i32;
+ let scale = self.scale;
+ let geom_x = (self.rendering_requested.x as f64 * scale) as i32;
+ let geom_y = (self.rendering_requested.y as f64 * scale) as i32;
+ let geom_w = (self.rendering_sent.width as f64 * scale) as i32;
+ let geom_h = (self.rendering_sent.height as f64 * scale) as i32;
ffi::river_scene_node_enable_blur(
self.surfaces.tree as *mut ffi::wlr_scene_node,
blur_enabled,
diff --git a/src/server/xdg_toplevel.rs b/src/server/xdg_toplevel.rs
index e6f8246..43bbe9b 100644
--- a/src/server/xdg_toplevel.rs
+++ b/src/server/xdg_toplevel.rs
@@ -413,10 +413,11 @@ unsafe extern "C" fn handle_commit(listener: *mut ffi::wl_listener, _data: *mut
if app_id.starts_with("cce-status") {
ignore_transparent = (*(*window).server).wm.layout.status_backdrop_blur_ignore_transparent;
}
- let geom_x = (*window).rendering_requested.x;
- let geom_y = (*window).rendering_requested.y;
- let geom_w = (*window).rendering_sent.width as i32;
- let geom_h = (*window).rendering_sent.height as i32;
+ let scale = (*window).scale;
+ let geom_x = ((*window).rendering_requested.x as f64 * scale) as i32;
+ let geom_y = ((*window).rendering_requested.y as f64 * scale) as i32;
+ let geom_w = ((*window).rendering_sent.width as f64 * scale) as i32;
+ let geom_h = ((*window).rendering_sent.height as f64 * scale) as i32;
ffi::river_scene_node_enable_blur(
(*window).surfaces.tree as *mut ffi::wlr_scene_node,
(*window).rendering_requested.blur,