@@ -302,15 +302,14 @@ impl v1::window_service_server::WindowService for super::WindowService {
302302 run_unary_no_response ( & self . sender , move |state| {
303303 if let Some ( window) = window_id. window ( & state. pinnacle ) {
304304 crate :: api:: window:: set_geometry ( state, & window, x, y, w, h) ;
305- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
306- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
307- rules. floating_x = x;
308- rules. floating_y = y;
309-
310- let size =
311- Size :: from ( ( w. unwrap_or_default ( ) as i32 , h. unwrap_or_default ( ) as i32 ) ) ;
312- rules. floating_size = Some ( size) ;
313- }
305+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
306+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
307+ {
308+ rules. floating_x = x;
309+ rules. floating_y = y;
310+
311+ let size = Size :: from ( ( w. unwrap_or_default ( ) as i32 , h. unwrap_or_default ( ) as i32 ) ) ;
312+ rules. floating_size = Some ( size) ;
314313 }
315314 } )
316315 . await
@@ -370,27 +369,27 @@ impl v1::window_service_server::WindowService for super::WindowService {
370369 None => layout_mode. toggle_fullscreen ( ) ,
371370 } ,
372371 ) ;
373- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
374- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
375- match fullscreen {
376- Some ( true ) => {
377- rules
378- . layout_mode
379- . get_or_insert ( LayoutMode :: new_fullscreen ( ) )
380- . set_fullscreen ( true ) ;
381- }
382- Some ( false ) => {
383- if let Some ( layout_mode) = rules. layout_mode . as_mut ( ) {
384- layout_mode. set_fullscreen ( false ) ;
385- }
386- }
387- None => {
388- rules
389- . layout_mode
390- . get_or_insert ( LayoutMode :: new_tiled ( ) )
391- . toggle_fullscreen ( ) ;
372+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
373+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
374+ {
375+ match fullscreen {
376+ Some ( true ) => {
377+ rules
378+ . layout_mode
379+ . get_or_insert ( LayoutMode :: new_fullscreen ( ) )
380+ . set_fullscreen ( true ) ;
381+ }
382+ Some ( false ) => {
383+ if let Some ( layout_mode) = rules. layout_mode . as_mut ( ) {
384+ layout_mode. set_fullscreen ( false ) ;
392385 }
393386 }
387+ None => {
388+ rules
389+ . layout_mode
390+ . get_or_insert ( LayoutMode :: new_tiled ( ) )
391+ . toggle_fullscreen ( ) ;
392+ }
394393 }
395394 }
396395 } )
@@ -424,27 +423,27 @@ impl v1::window_service_server::WindowService for super::WindowService {
424423 None => layout_mode. toggle_maximized ( ) ,
425424 } ,
426425 ) ;
427- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
428- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
429- match maximized {
430- Some ( true ) => {
431- rules
432- . layout_mode
433- . get_or_insert ( LayoutMode :: new_maximized ( ) )
434- . set_maximized ( true ) ;
435- }
436- Some ( false ) => {
437- if let Some ( layout_mode) = rules. layout_mode . as_mut ( ) {
438- layout_mode. set_maximized ( false ) ;
439- }
440- }
441- None => {
442- rules
443- . layout_mode
444- . get_or_insert ( LayoutMode :: new_tiled ( ) )
445- . toggle_maximized ( ) ;
426+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
427+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
428+ {
429+ match maximized {
430+ Some ( true ) => {
431+ rules
432+ . layout_mode
433+ . get_or_insert ( LayoutMode :: new_maximized ( ) )
434+ . set_maximized ( true ) ;
435+ }
436+ Some ( false ) => {
437+ if let Some ( layout_mode) = rules. layout_mode . as_mut ( ) {
438+ layout_mode. set_maximized ( false ) ;
446439 }
447440 }
441+ None => {
442+ rules
443+ . layout_mode
444+ . get_or_insert ( LayoutMode :: new_tiled ( ) )
445+ . toggle_maximized ( ) ;
446+ }
448447 }
449448 }
450449 } )
@@ -475,27 +474,27 @@ impl v1::window_service_server::WindowService for super::WindowService {
475474 Some ( set) => layout_mode. set_floating ( set) ,
476475 None => layout_mode. toggle_floating ( ) ,
477476 } ) ;
478- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
479- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
480- match floating {
481- Some ( true ) => {
482- rules
483- . layout_mode
484- . get_or_insert ( LayoutMode :: new_floating ( ) )
485- . set_floating ( true ) ;
486- }
487- Some ( false ) => {
488- rules
489- . layout_mode
490- . get_or_insert ( LayoutMode :: new_floating ( ) )
491- . set_floating ( false ) ;
492- }
493- None => {
494- rules
495- . layout_mode
496- . get_or_insert ( LayoutMode :: new_tiled ( ) )
497- . toggle_floating ( ) ;
498- }
477+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
478+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
479+ {
480+ match floating {
481+ Some ( true ) => {
482+ rules
483+ . layout_mode
484+ . get_or_insert ( LayoutMode :: new_floating ( ) )
485+ . set_floating ( true ) ;
486+ }
487+ Some ( false ) => {
488+ rules
489+ . layout_mode
490+ . get_or_insert ( LayoutMode :: new_floating ( ) )
491+ . set_floating ( false ) ;
492+ }
493+ None => {
494+ rules
495+ . layout_mode
496+ . get_or_insert ( LayoutMode :: new_tiled ( ) )
497+ . toggle_floating ( ) ;
499498 }
500499 }
501500 }
@@ -524,14 +523,14 @@ impl v1::window_service_server::WindowService for super::WindowService {
524523 run_unary_no_response ( & self . sender , move |state| {
525524 if let Some ( window) = window_id. window ( & state. pinnacle ) {
526525 crate :: api:: window:: set_focused ( state, & window, set) ;
527- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
528- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
529- match set {
530- Some ( set) => rules . focused = Some ( set ) ,
531- None => {
532- let focused = rules . focused . get_or_insert ( true ) ;
533- * focused = ! * focused;
534- }
526+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
527+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
528+ {
529+ match set {
530+ Some ( set ) => rules . focused = Some ( set ) ,
531+ None => {
532+ let focused = rules . focused . get_or_insert ( true ) ;
533+ * focused = ! * focused ;
535534 }
536535 }
537536 }
@@ -558,10 +557,10 @@ impl v1::window_service_server::WindowService for super::WindowService {
558557 run_unary_no_response ( & self . sender , move |state| {
559558 if let Some ( window) = window_id. window ( & state. pinnacle ) {
560559 crate :: api:: window:: set_decoration_mode ( state, & window, mode) ;
561- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
562- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
563- rules . decoration_mode = Some ( mode ) ;
564- }
560+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
561+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
562+ {
563+ rules . decoration_mode = Some ( mode ) ;
565564 }
566565 } )
567566 . await
@@ -578,10 +577,10 @@ impl v1::window_service_server::WindowService for super::WindowService {
578577
579578 if let Some ( window) = window_id. window ( & state. pinnacle ) {
580579 crate :: api:: window:: move_to_tag ( state, & window, & tag) ;
581- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
582- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
583- rules . tags = Some ( [ tag ] . into_iter ( ) . collect ( ) ) ;
584- }
580+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
581+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
582+ {
583+ rules . tags = Some ( [ tag ] . into_iter ( ) . collect ( ) ) ;
585584 }
586585 } )
587586 . await
@@ -611,25 +610,25 @@ impl v1::window_service_server::WindowService for super::WindowService {
611610
612611 if let Some ( window) = window_id. window ( & state. pinnacle ) {
613612 crate :: api:: window:: set_tag ( state, & window, & tag, set) ;
614- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
615- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
616- let tags = rules. tags . get_or_insert ( Default :: default ( ) ) ;
617- match set {
618- Some ( true ) => {
619- tags. insert ( tag. clone ( ) ) ;
620- }
621- Some ( false ) => {
622- tags. shift_remove ( & tag) ;
623- }
624- None => {
625- if tags. contains ( & tag) {
626- // Prevent toggling that would leave a window tagless
627- if tags. len ( ) > 1 {
628- tags. shift_remove ( & tag) ;
629- }
630- } else {
631- tags. insert ( tag. clone ( ) ) ;
613+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
614+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
615+ {
616+ let tags = rules. tags . get_or_insert ( Default :: default ( ) ) ;
617+ match set {
618+ Some ( true ) => {
619+ tags. insert ( tag. clone ( ) ) ;
620+ }
621+ Some ( false ) => {
622+ tags. shift_remove ( & tag) ;
623+ }
624+ None => {
625+ if tags. contains ( & tag) {
626+ // Prevent toggling that would leave a window tagless
627+ if tags. len ( ) > 1 {
628+ tags. shift_remove ( & tag) ;
632629 }
630+ } else {
631+ tags. insert ( tag. clone ( ) ) ;
633632 }
634633 }
635634 }
@@ -661,10 +660,10 @@ impl v1::window_service_server::WindowService for super::WindowService {
661660
662661 if let Some ( window) = window_id. window ( & state. pinnacle ) {
663662 window. with_state_mut ( |state| state. tags = tags) ;
664- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
665- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
666- rules . tags = Some ( tags ) ;
667- }
663+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
664+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
665+ {
666+ rules . tags = Some ( tags ) ;
668667 }
669668
670669 Ok ( SetTagsResponse { } )
@@ -684,12 +683,11 @@ impl v1::window_service_server::WindowService for super::WindowService {
684683 if let Some ( output) = output_name. output ( & state. pinnacle ) {
685684 if let Some ( window) = window_id. window ( & state. pinnacle ) {
686685 state. move_window_to_output ( & window, output) ;
687- } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle ) {
688- if let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state {
689- rules. tags = output. with_state ( |s| {
690- Some ( s. focused_tags ( ) . cloned ( ) . collect :: < IndexSet < _ > > ( ) )
691- } ) ;
692- }
686+ } else if let Some ( unmapped) = window_id. unmapped_window_mut ( & mut state. pinnacle )
687+ && let UnmappedState :: WaitingForRules { rules, .. } = & mut unmapped. state
688+ {
689+ rules. tags = output
690+ . with_state ( |s| Some ( s. focused_tags ( ) . cloned ( ) . collect :: < IndexSet < _ > > ( ) ) ) ;
693691 }
694692 }
695693
0 commit comments