srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/config/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/config/src')
-rw-r--r--crates/config/src/engine/general.rs1
-rw-r--r--crates/config/src/engine/register.rs1
-rw-r--r--crates/config/src/engine/window.rs14
3 files changed, 16 insertions, 0 deletions
diff --git a/crates/config/src/engine/general.rs b/crates/config/src/engine/general.rs
index d1a762a..96ea4d3 100644
--- a/crates/config/src/engine/general.rs
+++ b/crates/config/src/engine/general.rs
@@ -184,6 +184,7 @@ impl Engine {
border_width: actions.get("border_width")?,
pinned: actions.get("pinned")?,
opacity: actions.get("opacity")?,
+ resize_margin: actions.get("resize_margin")?,
},
};
state.borrow().wm.borrow_mut().add_rule(rule);
diff --git a/crates/config/src/engine/register.rs b/crates/config/src/engine/register.rs
index d68d253..abe919b 100644
--- a/crates/config/src/engine/register.rs
+++ b/crates/config/src/engine/register.rs
@@ -45,6 +45,7 @@ impl Engine {
window.set("set_border_color", self.fn_window_set_border_color()?)?;
window.set("set_border_width", self.fn_window_set_border_width()?)?;
window.set("set_opacity", self.fn_window_set_opacity()?)?;
+ window.set("set_resize_margin", self.fn_window_set_resize_margin()?)?;
window.set("set_floating", self.fn_window_set_floating()?)?;
window.set("toggle_floating", self.fn_window_action(WindowAction::ToggleFloating)?)?;
window.set("is_floating", self.fn_window_is_floating()?)?;
diff --git a/crates/config/src/engine/window.rs b/crates/config/src/engine/window.rs
index 6193f81..a7e6bf3 100644
--- a/crates/config/src/engine/window.rs
+++ b/crates/config/src/engine/window.rs
@@ -153,6 +153,20 @@ impl Engine {
})?)
}
+ pub(super) fn fn_window_set_resize_margin(&self) -> Result<mlua::Function<'_>> {
+ let state = self.state.clone();
+ Ok(self.lua.create_function(move |_, margin: i32| {
+ let wm = state.borrow().wm.clone();
+ let mut wm = wm.borrow_mut();
+ if let Some(id) = wm.focused_id() {
+ if let Some(w) = wm.window_mut(id) {
+ w.resize_margin = Some(margin);
+ }
+ }
+ Ok(())
+ })?)
+ }
+
pub(super) fn fn_window_set_floating(&self) -> Result<mlua::Function<'_>> {
let state = self.state.clone();
Ok(self.lua.create_function(move |_, floating: bool| {