@@ -669,13 +669,14 @@ private void UpdateNotifyIconText()
669669
670670 public void UpdatePosition ( )
671671 {
672+ // Intialize or update call twice to work around multi-display alignment issue- https://github.com/Flow-Launcher/Flow.Launcher/issues/2910
672673 if ( _viewModel . IsQuickSwitchWindowUnderDialog ( ) )
673674 {
674675 UpdateQuickSwitchPosition ( ) ;
676+ UpdateQuickSwitchPosition ( ) ;
675677 }
676678 else
677679 {
678- // Initialize call twice to work around multi-display alignment issue- https://github.com/Flow-Launcher/Flow.Launcher/issues/2910
679680 InitializePosition ( ) ;
680681 InitializePosition ( ) ;
681682 }
@@ -692,46 +693,38 @@ private async Task PositionResetAsync()
692693
693694 private void InitializePosition ( )
694695 {
695- // Initialize call twice to work around multi-display alignment issue- https://github.com/Flow-Launcher/Flow.Launcher/issues/2910
696- InitializePositionInner ( ) ;
697- InitializePositionInner ( ) ;
698- return ;
699-
700- void InitializePositionInner ( )
696+ if ( _settings . SearchWindowScreen == SearchWindowScreens . RememberLastLaunchLocation )
701697 {
702- if ( _settings . SearchWindowScreen == SearchWindowScreens . RememberLastLaunchLocation )
703- {
704- Top = _settings . WindowTop ;
705- Left = _settings . WindowLeft ;
706- }
707- else
698+ Top = _settings . WindowTop ;
699+ Left = _settings . WindowLeft ;
700+ }
701+ else
702+ {
703+ var screen = SelectedScreen ( ) ;
704+ switch ( _settings . SearchWindowAlign )
708705 {
709- var screen = SelectedScreen ( ) ;
710- switch ( _settings . SearchWindowAlign )
711- {
712- case SearchWindowAligns . Center :
713- Left = HorizonCenter ( screen ) ;
714- Top = VerticalCenter ( screen ) ;
715- break ;
716- case SearchWindowAligns . CenterTop :
717- Left = HorizonCenter ( screen ) ;
718- Top = 10 ;
719- break ;
720- case SearchWindowAligns . LeftTop :
721- Left = HorizonLeft ( screen ) ;
722- Top = 10 ;
723- break ;
724- case SearchWindowAligns . RightTop :
725- Left = HorizonRight ( screen ) ;
726- Top = 10 ;
727- break ;
728- case SearchWindowAligns . Custom :
729- Left = Win32Helper . TransformPixelsToDIP ( this ,
730- screen . WorkingArea . X + _settings . CustomWindowLeft , 0 ) . X ;
731- Top = Win32Helper . TransformPixelsToDIP ( this , 0 ,
732- screen . WorkingArea . Y + _settings . CustomWindowTop ) . Y ;
733- break ;
734- }
706+ case SearchWindowAligns . Center :
707+ Left = HorizonCenter ( screen ) ;
708+ Top = VerticalCenter ( screen ) ;
709+ break ;
710+ case SearchWindowAligns . CenterTop :
711+ Left = HorizonCenter ( screen ) ;
712+ Top = 10 ;
713+ break ;
714+ case SearchWindowAligns . LeftTop :
715+ Left = HorizonLeft ( screen ) ;
716+ Top = 10 ;
717+ break ;
718+ case SearchWindowAligns . RightTop :
719+ Left = HorizonRight ( screen ) ;
720+ Top = 10 ;
721+ break ;
722+ case SearchWindowAligns . Custom :
723+ Left = Win32Helper . TransformPixelsToDIP ( this ,
724+ screen . WorkingArea . X + _settings . CustomWindowLeft , 0 ) . X ;
725+ Top = Win32Helper . TransformPixelsToDIP ( this , 0 ,
726+ screen . WorkingArea . Y + _settings . CustomWindowTop ) . Y ;
727+ break ;
735728 }
736729 }
737730 }
0 commit comments