@@ -2419,7 +2419,6 @@ impl Shell {
24192419 & mut self ,
24202420 surface : CosmicSurface ,
24212421 state : Option < FullscreenRestoreState > ,
2422- original_geometry : Option < Rectangle < i32 , Local > > ,
24232422 loop_handle : & LoopHandle < ' static , State > ,
24242423 ) {
24252424 let window = CosmicMapped :: from ( CosmicWindow :: new (
@@ -2428,7 +2427,7 @@ impl Shell {
24282427 self . theme . clone ( ) ,
24292428 ) ) ;
24302429
2431- if let Some ( FullscreenRestoreState :: Sticky { output, .. } ) = & state {
2430+ if let Some ( FullscreenRestoreState :: Sticky { output, state , .. } ) = & state {
24322431 let output = output
24332432 . upgrade ( )
24342433 . unwrap_or_else ( || self . seats . last_active ( ) . active_output ( ) ) ;
@@ -2441,8 +2440,8 @@ impl Shell {
24412440 . unwrap ( ) ;
24422441 set. sticky_layer . map_internal (
24432442 window,
2444- original_geometry . map ( |rect| rect . loc ) ,
2445- original_geometry . map ( |rect| rect . size . as_logical ( ) ) ,
2443+ Some ( state . geometry . loc ) ,
2444+ Some ( state . geometry . size . as_logical ( ) ) ,
24462445 Some ( set. output . geometry ( ) . to_local ( & set. output ) ) ,
24472446 ) ;
24482447 return ;
@@ -2489,17 +2488,21 @@ impl Shell {
24892488 }
24902489 }
24912490 Some ( FullscreenRestoreState :: Floating {
2492- state : FloatingRestoreData { was_maximized, .. } ,
2491+ state :
2492+ FloatingRestoreData {
2493+ was_maximized,
2494+ geometry,
2495+ ..
2496+ } ,
24932497 ..
24942498 } ) => {
24952499 workspace. floating_layer . map_internal (
24962500 window. clone ( ) ,
2497- original_geometry . map ( |geo| geo . loc ) ,
2498- original_geometry . map ( |geo| geo . size . as_logical ( ) ) ,
2501+ Some ( geometry . loc ) ,
2502+ Some ( geometry . size . as_logical ( ) ) ,
24992503 Some ( fullscreen_geometry) ,
25002504 ) ;
25012505 if was_maximized {
2502- let geometry = workspace. floating_layer . element_geometry ( & window) . unwrap ( ) ;
25032506 let mut state = window. maximized_state . lock ( ) . unwrap ( ) ;
25042507 * state = Some ( MaximizedState {
25052508 original_geometry : geometry,
@@ -2657,12 +2660,11 @@ impl Shell {
26572660 let floating_exception = layout:: has_floating_exception ( & self . tiling_exceptions , & window) ;
26582661
26592662 if should_be_fullscreen {
2660- if let Some ( ( surface, state, geometry) ) =
2661- workspace. map_fullscreen ( & window, & seat, None , None )
2663+ if let Some ( ( surface, state, _) ) = workspace. map_fullscreen ( & window, & seat, None , None )
26622664 {
26632665 toplevel_leave_output ( & surface, & workspace. output ) ;
26642666 toplevel_leave_workspace ( & surface, & workspace. handle ) ;
2665- self . remap_unfullscreened_window ( surface, state, geometry , loop_handle) ;
2667+ self . remap_unfullscreened_window ( surface, state, loop_handle) ;
26662668 }
26672669 if was_activated {
26682670 workspace_state. add_workspace_state ( & workspace_handle, WState :: Urgent ) ;
@@ -3130,20 +3132,13 @@ impl Shell {
31303132 ) ;
31313133 mapped. into ( )
31323134 } else if let WorkspaceRestoreData :: Fullscreen ( previous) = window_state {
3133- if let Some ( ( old_surface, previous_state, previous_geometry) ) = to_workspace
3134- . map_fullscreen (
3135- window,
3136- None ,
3137- previous. clone ( ) . map ( |p| p. previous_state ) ,
3138- previous. map ( |p| p. previous_geometry ) ,
3139- )
3140- {
3141- self . remap_unfullscreened_window (
3142- old_surface,
3143- previous_state,
3144- previous_geometry,
3145- evlh,
3146- ) ;
3135+ if let Some ( ( old_surface, previous_state, _) ) = to_workspace. map_fullscreen (
3136+ window,
3137+ None ,
3138+ previous. clone ( ) . map ( |p| p. previous_state ) ,
3139+ previous. map ( |p| p. previous_geometry ) ,
3140+ ) {
3141+ self . remap_unfullscreened_window ( old_surface, previous_state, evlh) ;
31473142 }
31483143 window. clone ( ) . into ( )
31493144 } else {
@@ -3421,8 +3416,8 @@ impl Shell {
34213416 . find ( |w| w. get_fullscreen ( ) . is_some_and ( |s| s == surface) ) ;
34223417 if let Some ( workspace) = maybe_fullscreen_workspace {
34233418 element_geo = Some ( workspace. fullscreen_geometry ( ) . unwrap ( ) ) ;
3424- let ( surface, state, original_geometry ) = workspace. remove_fullscreen ( ) . unwrap ( ) ;
3425- self . remap_unfullscreened_window ( surface, state, original_geometry , evlh) ;
3419+ let ( surface, state, _ ) = workspace. remove_fullscreen ( ) . unwrap ( ) ;
3420+ self . remap_unfullscreened_window ( surface, state, evlh) ;
34263421 } ;
34273422
34283423 let old_mapped = self . element_for_surface ( surface) . cloned ( ) ?;
@@ -4060,11 +4055,10 @@ impl Shell {
40604055 window. mapped ( ) . unwrap ( ) . set_active ( surface) ;
40614056 }
40624057 let from = minimize_rectangle ( workspace. output ( ) , & window. active_window ( ) ) ;
4063- if let Some ( ( surface, restore, previous_geo) ) = workspace. unminimize ( window, from, seat)
4064- {
4058+ if let Some ( ( surface, restore, _) ) = workspace. unminimize ( window, from, seat) {
40654059 toplevel_leave_output ( & surface, & workspace. output ) ;
40664060 toplevel_leave_workspace ( & surface, & workspace. handle ) ;
4067- self . remap_unfullscreened_window ( surface, restore, previous_geo , loop_handle) ;
4061+ self . remap_unfullscreened_window ( surface, restore, loop_handle) ;
40684062 }
40694063 }
40704064 }
@@ -4579,8 +4573,8 @@ impl Shell {
45794573 return None ;
45804574 } ;
45814575
4582- if let Some ( ( old_fullscreen, restore, previous_geo ) ) = old_fullscreen {
4583- self . remap_unfullscreened_window ( old_fullscreen, restore, previous_geo , & loop_handle) ;
4576+ if let Some ( ( old_fullscreen, restore, _ ) ) = old_fullscreen {
4577+ self . remap_unfullscreened_window ( old_fullscreen, restore, & loop_handle) ;
45844578 }
45854579
45864580 Some ( KeyboardFocusTarget :: Fullscreen ( window) )
@@ -4601,11 +4595,11 @@ impl Shell {
46014595 } ) ;
46024596
46034597 if let Some ( workspace) = maybe_workspace {
4604- let ( old_fullscreen, restore, previous_geo ) = workspace. remove_fullscreen ( ) . unwrap ( ) ;
4598+ let ( old_fullscreen, restore, _ ) = workspace. remove_fullscreen ( ) . unwrap ( ) ;
46054599 toplevel_leave_output ( & old_fullscreen, & workspace. output ) ;
46064600 toplevel_leave_workspace ( & old_fullscreen, & workspace. handle ) ;
46074601
4608- self . remap_unfullscreened_window ( old_fullscreen, restore, previous_geo , loop_handle) ;
4602+ self . remap_unfullscreened_window ( old_fullscreen, restore, loop_handle) ;
46094603
46104604 true
46114605 } else {
0 commit comments