diff options
| author | srdusr <[email protected]> | 2024-08-22 16:06:00 +0200 |
|---|---|---|
| committer | srdusr <[email protected]> | 2024-08-22 16:06:00 +0200 |
| commit | 78da614d67c09e197dffc1cebb1c5ce2357c7128 (patch) | |
| tree | a39694108f7d1192276a0ea8956e458dc2595d79 /crates/core/src/rules.rs | |
| parent | 8d94ca5d77d6e2a189d299b8b88a461ba2e621c6 (diff) | |
| download | srdwm-78da614d67c09e197dffc1cebb1c5ce2357c7128.tar.gz srdwm-78da614d67c09e197dffc1cebb1c5ce2357c7128.zip | |
Add per-window resize-margin override (Hyprland's extend_border_grab_area)
MISSING.md had listed this as needing to touch srdwm_core::window::
hit_test's signature at every call site, including the honest-stub
Windows/macOS backends - overstated on closer inspection: that shared
function already takes a plain resize_margin: i32 parameter, agnostic
to where the value comes from. The only real change needed was reading
Window.resize_margin.unwrap_or(wm-wide default) instead of always the
WM-wide value, at the single call site inside WindowManager::hit_test
in core - no backend touched at all.
Window.resize_margin: Option<i32>, WindowRuleActions.resize_margin to
match, applied in add_window/reapply_rules_if_pending the same way
opacity already is. Settable via a rule action or
srd.window.set_resize_margin(n) on the focused window.
Diffstat (limited to 'crates/core/src/rules.rs')
| -rw-r--r-- | crates/core/src/rules.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/crates/core/src/rules.rs b/crates/core/src/rules.rs index e0e87cb..7d9ee31 100644 --- a/crates/core/src/rules.rs +++ b/crates/core/src/rules.rs @@ -90,6 +90,9 @@ pub struct WindowRuleActions { pub pinned: Option<bool>, /// Content opacity, `0.0`..=`1.0` (Hyprland's `windowrule = opacity`). pub opacity: Option<f32>, + /// Per-window resize-grab-margin override, in logical pixels + /// (Hyprland's per-window `extend_border_grab_area`). + pub resize_margin: Option<i32>, } #[derive(Debug, Clone, Default)] |