From c05326d1b6dba32bc681b24ca178f471ae9e8044 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 14 Aug 2023 18:34:39 +0400 Subject: Add Mod+F to maximize --- src/layout.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/layout.rs') diff --git a/src/layout.rs b/src/layout.rs index 6e4d9306..c4ab517b 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -759,6 +759,13 @@ impl MonitorSet { }; monitor.toggle_width(); } + + pub fn toggle_full_width(&mut self) { + let Some(monitor) = self.active_monitor() else { + return; + }; + monitor.toggle_full_width(); + } } impl MonitorSet { @@ -976,6 +983,10 @@ impl Monitor { fn toggle_width(&mut self) { self.active_workspace().toggle_width(); } + + fn toggle_full_width(&mut self) { + self.active_workspace().toggle_full_width(); + } } impl Monitor { @@ -1392,6 +1403,14 @@ impl Workspace { self.columns[self.active_column_idx].toggle_width(self.view_size); } + + fn toggle_full_width(&mut self) { + if self.columns.is_empty() { + return; + } + + self.columns[self.active_column_idx].toggle_full_width(self.view_size); + } } impl Workspace { @@ -1555,6 +1574,17 @@ impl Column { let width = ColumnWidth::PresetProportion(idx); self.set_width(view_size, width); } + + fn toggle_full_width(&mut self, view_size: Size) { + let width = match self.width { + ColumnWidth::Proportion(1.) => { + // FIXME: would be good to restore to previous width here. + ColumnWidth::default() + } + _ => ColumnWidth::Proportion(1.), + }; + self.set_width(view_size, width); + } } pub fn output_size(output: &Output) -> Size { -- cgit