diff --git a/src/backend/render/shadow.rs b/src/backend/render/shadow.rs index 546c1e31..d4bbcdca 100644 --- a/src/backend/render/shadow.rs +++ b/src/backend/render/shadow.rs @@ -26,6 +26,7 @@ pub struct ShadowParameters { scale: f64, alpha: f32, radius: [u8; 4], + dark_mode: bool, } type ShadowCache = RefCell>; @@ -47,12 +48,14 @@ impl ShadowShader { radius: [u8; 4], alpha: f32, scale: f64, + dark_mode: bool, ) -> PixelShaderElement { let params = ShadowParameters { geo, scale, alpha, radius, + dark_mode, }; let ceil = |logical: f64| (logical * scale).ceil() / scale; @@ -81,7 +84,7 @@ impl ShadowShader { let softness = 25.; let spread = 5.; let offset = [0., 5.]; - let color = [0., 0., 0., 0.35]; + let color = [0., 0., 0., if dark_mode { 0.45 } else { 0.35 }]; let radius = radius.map(|r| ceil(r as f64)); let radius = [ radius[3], // top_left diff --git a/src/shell/element/stack.rs b/src/shell/element/stack.rs index 858cec0b..c9b093f0 100644 --- a/src/shell/element/stack.rs +++ b/src/shell/element/stack.rs @@ -711,6 +711,7 @@ impl CosmicStack { radii, if activated { alpha } else { alpha * 0.75 }, output_scale.x, + theme.cosmic().is_dark, )) .into(), ) diff --git a/src/shell/element/window.rs b/src/shell/element/window.rs index d1ce34d5..5d302db0 100644 --- a/src/shell/element/window.rs +++ b/src/shell/element/window.rs @@ -372,6 +372,7 @@ impl CosmicWindow { let is_tiled = p.is_tiled(); let activated = p.window.is_activated(false); let appearance = p.appearance_conf.lock().unwrap(); + let theme = p.theme.lock().unwrap(); if p.window.is_maximized(false) { return None; @@ -388,10 +389,7 @@ impl CosmicWindow { if !should_draw_shadow { return None; } - let mut radii = p - .theme - .lock() - .unwrap() + let mut radii = theme .cosmic() .radius_s() .map(|x| if x < 4.0 { x } else { x + 4.0 }) @@ -425,6 +423,7 @@ impl CosmicWindow { radii, if activated { alpha } else { alpha * 0.75 }, output_scale.x, + theme.cosmic().is_dark, )) .into(), )