diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-01 19:06:08 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-02 14:27:53 +0400 |
| commit | 42cef79c699c0f03b4bb99c4278169c48d9a5bd0 (patch) | |
| tree | 630d18b49f3d93603a79bcfc5734dc773c6d0cb6 /src/window | |
| parent | d86df5025cfd26ef4a3c48acd8ee80555265ee53 (diff) | |
| download | niri-42cef79c699c0f03b4bb99c4278169c48d9a5bd0.tar.gz niri-42cef79c699c0f03b4bb99c4278169c48d9a5bd0.tar.bz2 niri-42cef79c699c0f03b4bb99c4278169c48d9a5bd0.zip | |
Implement rounded window corners
Diffstat (limited to 'src/window')
| -rw-r--r-- | src/window/mod.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/window/mod.rs b/src/window/mod.rs index 90a6fb2c..3af9eebd 100644 --- a/src/window/mod.rs +++ b/src/window/mod.rs @@ -1,4 +1,4 @@ -use niri_config::{BlockOutFrom, BorderRule, Match, WindowRule}; +use niri_config::{BlockOutFrom, BorderRule, CornerRadius, Match, WindowRule}; use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel; use smithay::wayland::compositor::with_states; use smithay::wayland::shell::xdg::{ @@ -61,6 +61,12 @@ pub struct ResolvedWindowRules { /// Extra opacity to draw this window with. pub opacity: Option<f32>, + /// Corner radius to assume this window has. + pub geometry_corner_radius: Option<CornerRadius>, + + /// Whether to clip this window to its geometry, including the corner radius. + pub clip_to_geometry: Option<bool>, + /// Whether to block out this window from certain render targets. pub block_out_from: Option<BlockOutFrom>, } @@ -112,6 +118,8 @@ impl ResolvedWindowRules { }, draw_border_with_background: None, opacity: None, + geometry_corner_radius: None, + clip_to_geometry: None, block_out_from: None, } } @@ -190,6 +198,12 @@ impl ResolvedWindowRules { if let Some(x) = rule.opacity { resolved.opacity = Some(x); } + if let Some(x) = rule.geometry_corner_radius { + resolved.geometry_corner_radius = Some(x); + } + if let Some(x) = rule.clip_to_geometry { + resolved.clip_to_geometry = Some(x); + } if let Some(x) = rule.block_out_from { resolved.block_out_from = Some(x); } |
