File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -4496,7 +4496,8 @@ impl Shell {
44964496 . iter_mut ( )
44974497 . find ( |( _, set) | set. sticky_layer . mapped ( ) . any ( |m| m == & mapped) )
44984498 {
4499- let from = set. sticky_layer . element_geometry ( & mapped) . unwrap ( ) ;
4499+ let mut from = set. sticky_layer . element_geometry ( & mapped) . unwrap ( ) ;
4500+ let mut was_maximized = false ;
45004501 window = if mapped
45014502 . stack_ref ( )
45024503 . map ( |stack| stack. len ( ) > 1 )
@@ -4507,7 +4508,18 @@ impl Shell {
45074508 stack. remove_window ( & surface) ;
45084509 surface
45094510 } else {
4510- set. sticky_layer . unmap ( & mapped, None ) ;
4511+ if let Some ( state) = mapped. maximized_state . lock ( ) . unwrap ( ) . take ( ) {
4512+ mapped. set_maximized ( false ) ;
4513+ set. sticky_layer . map_internal (
4514+ mapped. clone ( ) ,
4515+ Some ( state. original_geometry . loc ) ,
4516+ Some ( state. original_geometry . size . as_logical ( ) ) ,
4517+ None ,
4518+ ) ;
4519+ was_maximized = true ;
4520+ }
4521+
4522+ from = set. sticky_layer . unmap ( & mapped, None ) . unwrap ( ) ;
45114523 mapped. active_window ( )
45124524 } ;
45134525
@@ -4526,7 +4538,7 @@ impl Shell {
45264538 state : FloatingRestoreData {
45274539 geometry : from,
45284540 output_size : workspace. output . geometry ( ) . size . as_logical ( ) ,
4529- was_maximized : false ,
4541+ was_maximized,
45304542 } ,
45314543 } ) ,
45324544 Some ( from) ,
You can’t perform that action at this time.
0 commit comments