Skip to content

Commit 136ccaf

Browse files
committed
Fix multi-display alignment issue
1 parent 1b3e036 commit 136ccaf

File tree

1 file changed

+32
-39
lines changed

1 file changed

+32
-39
lines changed

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 32 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)