aboutsummaryrefslogtreecommitdiff
path: root/src/window/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/window/mod.rs')
-rw-r--r--src/window/mod.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/window/mod.rs b/src/window/mod.rs
index 9c64fe82..189049b3 100644
--- a/src/window/mod.rs
+++ b/src/window/mod.rs
@@ -1,7 +1,8 @@
use std::cmp::{max, min};
use niri_config::{
- BlockOutFrom, BorderRule, CornerRadius, FloatingPosition, Match, PresetSize, WindowRule,
+ BlockOutFrom, BorderRule, CornerRadius, FloatingPosition, Match, PresetSize, ShadowRule,
+ WindowRule,
};
use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel;
use smithay::utils::{Logical, Size};
@@ -77,6 +78,8 @@ pub struct ResolvedWindowRules {
pub focus_ring: BorderRule,
/// Window border overrides.
pub border: BorderRule,
+ /// Shadow overrides.
+ pub shadow: ShadowRule,
/// Whether or not to draw the border with a solid background.
///
@@ -171,6 +174,16 @@ impl ResolvedWindowRules {
active_gradient: None,
inactive_gradient: None,
},
+ shadow: ShadowRule {
+ off: false,
+ on: false,
+ offset: None,
+ softness: None,
+ spread: None,
+ draw_behind_window: None,
+ color: None,
+ inactive_color: None,
+ },
draw_border_with_background: None,
opacity: None,
geometry_corner_radius: None,
@@ -268,6 +281,7 @@ impl ResolvedWindowRules {
resolved.focus_ring.merge_with(&rule.focus_ring);
resolved.border.merge_with(&rule.border);
+ resolved.shadow.merge_with(&rule.shadow);
if let Some(x) = rule.draw_border_with_background {
resolved.draw_border_with_background = Some(x);