diff options
Diffstat (limited to 'crates/core/src/manager/winops.rs')
| -rw-r--r-- | crates/core/src/manager/winops.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/crates/core/src/manager/winops.rs b/crates/core/src/manager/winops.rs index e656298..6f4d53e 100644 --- a/crates/core/src/manager/winops.rs +++ b/crates/core/src/manager/winops.rs @@ -93,7 +93,19 @@ impl WindowManager { } pub fn toggle_maximize(&mut self, id: WindowId) { - let monitor_geom = self.windows.get(&id).and_then(|w| self.monitor_for(w.monitor)).map(|m| m.geometry); + // `maximize_geometry`, not `geometry` or `full_geometry`: maximize + // covers the whole monitor past a dock's reserved zone, same as + // `toggle_fullscreen` - but still stops at a top bar's, unlike + // fullscreen. Previously targeted `full_geometry` outright (past + // both), on the user's own request specifically about the dock; + // that also silently pulled maximize past the top bar, which + // wasn't part of that request and was reported back as its own + // bug once live-tested. See `Monitor::maximize_geometry`'s own doc + // comment for the exact rect this now is. The only remaining + // difference from fullscreen is `decorated` (maximize keeps + // whatever decoration state the window already had; fullscreen + // forces it off). + let monitor_geom = self.windows.get(&id).and_then(|w| self.monitor_for(w.monitor)).map(|m| m.maximize_geometry); let animations_enabled = self.animations_enabled; let Some(w) = self.windows.get_mut(&id) else { return }; let from = w.geometry; |