Avoid using overlay window when not necessary

This commit is contained in:
Isaac Marovitz 2024-07-20 12:33:19 +01:00
parent 5ad5679145
commit f0f84454a8
No known key found for this signature in database
GPG key ID: 97250B2B09A132E1

View file

@ -342,49 +342,56 @@ namespace Ryujinx.Ava.UI.Helpers
isTopDialog = false; isTopDialog = false;
} }
parent.Activate(); if (parent is MainWindow)
_contentDialogOverlayWindow = new ContentDialogOverlayWindow
{ {
Height = parent.Bounds.Height, parent.Activate();
Width = parent.Bounds.Width,
Position = parent.PointToScreen(new Point()),
ShowInTaskbar = false,
};
parent.PositionChanged += OverlayOnPositionChanged; _contentDialogOverlayWindow = new ContentDialogOverlayWindow
void OverlayOnPositionChanged(object sender, PixelPointEventArgs e)
{
if (_contentDialogOverlayWindow is null)
{ {
return; Height = parent.Bounds.Height,
Width = parent.Bounds.Width,
Position = parent.PointToScreen(new Point()),
ShowInTaskbar = false,
};
parent.PositionChanged += OverlayOnPositionChanged;
void OverlayOnPositionChanged(object sender, PixelPointEventArgs e)
{
if (_contentDialogOverlayWindow is null)
{
return;
}
_contentDialogOverlayWindow.Position = parent.PointToScreen(new Point());
} }
_contentDialogOverlayWindow.Position = parent.PointToScreen(new Point()); _contentDialogOverlayWindow.ContentDialog = contentDialog;
}
_contentDialogOverlayWindow.ContentDialog = contentDialog; bool opened = false;
bool opened = false; _contentDialogOverlayWindow.Opened += OverlayOnActivated;
_contentDialogOverlayWindow.Opened += OverlayOnActivated; async void OverlayOnActivated(object sender, EventArgs e)
async void OverlayOnActivated(object sender, EventArgs e)
{
if (opened)
{ {
return; if (opened)
{
return;
}
opened = true;
_contentDialogOverlayWindow.Position = parent.PointToScreen(new Point());
result = await ShowDialog();
} }
opened = true; result = await _contentDialogOverlayWindow.ShowDialog<ContentDialogResult>(parent);
}
_contentDialogOverlayWindow.Position = parent.PointToScreen(new Point()); else
{
result = await ShowDialog(); result = await contentDialog.ShowAsync(parent);
} }
result = await _contentDialogOverlayWindow.ShowDialog<ContentDialogResult>(parent);
async Task<ContentDialogResult> ShowDialog() async Task<ContentDialogResult> ShowDialog()
{ {