fix: restore snapped windows as snapped after maximize/minimize
This commit is contained in:
parent
7c02df250e
commit
b5186ef21a
4 changed files with 42 additions and 7 deletions
|
|
@ -385,11 +385,13 @@ impl FloatingLayout {
|
|||
} else {
|
||||
self.animations.remove(&mapped);
|
||||
}
|
||||
if mapped.floating_tiled.lock().unwrap().take().is_some()
|
||||
// Restore to the corner this was snapped to if any
|
||||
let snapped = mapped.floating_tiled.lock().unwrap().take();
|
||||
if let Some(snapped) = snapped
|
||||
&& let Some(state) = mapped.maximized_state.lock().unwrap().as_mut()
|
||||
&& let Some(real_old_geo) = *mapped.last_geometry.lock().unwrap()
|
||||
&& state.original_snapped.is_none()
|
||||
{
|
||||
state.original_geometry = real_old_geo;
|
||||
state.original_snapped = Some(snapped);
|
||||
};
|
||||
self.space
|
||||
.map_element(mapped, geometry.loc.as_logical(), true);
|
||||
|
|
@ -1198,6 +1200,7 @@ impl FloatingLayout {
|
|||
*maximized_state = Some(MaximizedState {
|
||||
original_geometry: start_rectangle,
|
||||
original_layer: layer,
|
||||
original_snapped: None,
|
||||
});
|
||||
std::mem::drop(maximized_state);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue