shell: Correctly track was_maximized for fullscreened sticky windows
This commit is contained in:
parent
54e76d5ad2
commit
261134d827
1 changed files with 15 additions and 3 deletions
|
|
@ -4496,7 +4496,8 @@ impl Shell {
|
|||
.iter_mut()
|
||||
.find(|(_, set)| set.sticky_layer.mapped().any(|m| m == &mapped))
|
||||
{
|
||||
let from = set.sticky_layer.element_geometry(&mapped).unwrap();
|
||||
let mut from = set.sticky_layer.element_geometry(&mapped).unwrap();
|
||||
let mut was_maximized = false;
|
||||
window = if mapped
|
||||
.stack_ref()
|
||||
.map(|stack| stack.len() > 1)
|
||||
|
|
@ -4507,7 +4508,18 @@ impl Shell {
|
|||
stack.remove_window(&surface);
|
||||
surface
|
||||
} else {
|
||||
set.sticky_layer.unmap(&mapped, None);
|
||||
if let Some(state) = mapped.maximized_state.lock().unwrap().take() {
|
||||
mapped.set_maximized(false);
|
||||
set.sticky_layer.map_internal(
|
||||
mapped.clone(),
|
||||
Some(state.original_geometry.loc),
|
||||
Some(state.original_geometry.size.as_logical()),
|
||||
None,
|
||||
);
|
||||
was_maximized = true;
|
||||
}
|
||||
|
||||
from = set.sticky_layer.unmap(&mapped, None).unwrap();
|
||||
mapped.active_window()
|
||||
};
|
||||
|
||||
|
|
@ -4526,7 +4538,7 @@ impl Shell {
|
|||
state: FloatingRestoreData {
|
||||
geometry: from,
|
||||
output_size: workspace.output.geometry().size.as_logical(),
|
||||
was_maximized: false,
|
||||
was_maximized,
|
||||
},
|
||||
}),
|
||||
Some(from),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue