Skip to content

Commit 320719e

Browse files
committed
Show window when minimized
1 parent 356fc31 commit 320719e

File tree

3 files changed

+123
-15
lines changed

3 files changed

+123
-15
lines changed

src/PicView.Avalonia.MacOS/App.axaml.cs

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using PicView.Avalonia.StartUp;
1313
using PicView.Avalonia.UI;
1414
using PicView.Avalonia.ViewModels;
15+
using PicView.Avalonia.WindowBehavior;
1516
using PicView.Core.Config;
1617
using PicView.Core.FileHandling;
1718
using PicView.Core.Localization;
@@ -148,7 +149,14 @@ void Set()
148149
}
149150
else
150151
{
151-
_aboutWindow.Activate();
152+
if (_aboutWindow.WindowState == WindowState.Minimized)
153+
{
154+
WindowFunctions.ShowMinimizedWindow(_aboutWindow);
155+
}
156+
else
157+
{
158+
_aboutWindow.Show();
159+
}
152160
}
153161

154162
_ = FunctionsHelper.CloseMenus();
@@ -186,7 +194,14 @@ void Set()
186194
}
187195
else
188196
{
189-
_exifWindow.Activate();
197+
if (_exifWindow.WindowState == WindowState.Minimized)
198+
{
199+
WindowFunctions.ShowMinimizedWindow(_exifWindow);
200+
}
201+
else
202+
{
203+
_exifWindow.Show();
204+
}
190205
}
191206

192207
_ = FunctionsHelper.CloseMenus();
@@ -224,7 +239,14 @@ void Set()
224239
}
225240
else
226241
{
227-
_keybindingsWindow.Activate();
242+
if (_keybindingsWindow.WindowState == WindowState.Minimized)
243+
{
244+
WindowFunctions.ShowMinimizedWindow(_keybindingsWindow);
245+
}
246+
else
247+
{
248+
_keybindingsWindow.Show();
249+
}
228250
}
229251

230252
_ = FunctionsHelper.CloseMenus();
@@ -260,7 +282,14 @@ void Set()
260282
}
261283
else
262284
{
263-
_settingsWindow.Activate();
285+
if (_settingsWindow.WindowState == WindowState.Minimized)
286+
{
287+
WindowFunctions.ShowMinimizedWindow(_settingsWindow);
288+
}
289+
else
290+
{
291+
_settingsWindow.Show();
292+
}
264293
}
265294
_= FunctionsHelper.CloseMenus();
266295

@@ -296,7 +325,14 @@ void Set()
296325
}
297326
else
298327
{
299-
_effectsWindow.Activate();
328+
if (_effectsWindow.WindowState == WindowState.Minimized)
329+
{
330+
WindowFunctions.ShowMinimizedWindow(_effectsWindow);
331+
}
332+
else
333+
{
334+
_effectsWindow.Show();
335+
}
300336
}
301337
_= FunctionsHelper.CloseMenus();
302338
}
@@ -331,7 +367,14 @@ void Set()
331367
}
332368
else
333369
{
334-
_singleImageResizeWindow.Activate();
370+
if (_singleImageResizeWindow.WindowState == WindowState.Minimized)
371+
{
372+
WindowFunctions.ShowMinimizedWindow(_singleImageResizeWindow);
373+
}
374+
else
375+
{
376+
_singleImageResizeWindow.Show();
377+
}
335378
}
336379
_= FunctionsHelper.CloseMenus();
337380
}
@@ -366,7 +409,14 @@ void Set()
366409
}
367410
else
368411
{
369-
_batchResizeWindow.Activate();
412+
if (_batchResizeWindow.WindowState == WindowState.Minimized)
413+
{
414+
WindowFunctions.ShowMinimizedWindow(_batchResizeWindow);
415+
}
416+
else
417+
{
418+
_batchResizeWindow.Show();
419+
}
370420
}
371421
_= FunctionsHelper.CloseMenus();
372422
}

src/PicView.Avalonia.Win32/App.axaml.cs

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using PicView.Avalonia.UI;
1414
using PicView.Avalonia.ViewModels;
1515
using PicView.Avalonia.Win32.Views;
16+
using PicView.Avalonia.WindowBehavior;
1617
using PicView.Core.Config;
1718
using PicView.Core.FileHandling;
1819
using PicView.Core.Localization;
@@ -191,7 +192,14 @@ void Set()
191192
}
192193
else
193194
{
194-
_aboutWindow.Activate();
195+
if (_aboutWindow.WindowState == WindowState.Minimized)
196+
{
197+
WindowFunctions.ShowMinimizedWindow(_aboutWindow);
198+
}
199+
else
200+
{
201+
_aboutWindow.Show();
202+
}
195203
}
196204

197205
_ = FunctionsHelper.CloseMenus();
@@ -229,7 +237,14 @@ void Set()
229237
}
230238
else
231239
{
232-
_exifWindow.Activate();
240+
if (_exifWindow.WindowState == WindowState.Minimized)
241+
{
242+
WindowFunctions.ShowMinimizedWindow(_exifWindow);
243+
}
244+
else
245+
{
246+
_exifWindow.Show();
247+
}
233248
}
234249

235250
_ = FunctionsHelper.CloseMenus();
@@ -267,7 +282,14 @@ void Set()
267282
}
268283
else
269284
{
270-
_keybindingsWindow.Activate();
285+
if (_keybindingsWindow.WindowState == WindowState.Minimized)
286+
{
287+
WindowFunctions.ShowMinimizedWindow(_keybindingsWindow);
288+
}
289+
else
290+
{
291+
_keybindingsWindow.Show();
292+
}
271293
}
272294

273295
_ = FunctionsHelper.CloseMenus();
@@ -303,7 +325,14 @@ void Set()
303325
}
304326
else
305327
{
306-
_settingsWindow.Activate();
328+
if (_settingsWindow.WindowState == WindowState.Minimized)
329+
{
330+
WindowFunctions.ShowMinimizedWindow(_settingsWindow);
331+
}
332+
else
333+
{
334+
_settingsWindow.Show();
335+
}
307336
}
308337
_= FunctionsHelper.CloseMenus();
309338

@@ -339,7 +368,14 @@ void Set()
339368
}
340369
else
341370
{
342-
_singleImageResizeWindow.Activate();
371+
if (_singleImageResizeWindow.WindowState == WindowState.Minimized)
372+
{
373+
WindowFunctions.ShowMinimizedWindow(_singleImageResizeWindow);
374+
}
375+
else
376+
{
377+
_singleImageResizeWindow.Show();
378+
}
343379
}
344380
_= FunctionsHelper.CloseMenus();
345381
}
@@ -374,7 +410,14 @@ void Set()
374410
}
375411
else
376412
{
377-
_batchResizeWindow.Show();
413+
if (_batchResizeWindow.WindowState == WindowState.Minimized)
414+
{
415+
WindowFunctions.ShowMinimizedWindow(_batchResizeWindow);
416+
}
417+
else
418+
{
419+
_batchResizeWindow.Show();
420+
}
378421
}
379422
_= FunctionsHelper.CloseMenus();
380423
}
@@ -409,7 +452,14 @@ void Set()
409452
}
410453
else
411454
{
412-
_effectsWindow.Show();
455+
if (_effectsWindow.WindowState == WindowState.Minimized)
456+
{
457+
WindowFunctions.ShowMinimizedWindow(_effectsWindow);
458+
}
459+
else
460+
{
461+
_effectsWindow.Show();
462+
}
413463
}
414464
_= FunctionsHelper.CloseMenus();
415465
}

src/PicView.Avalonia/WindowBehavior/WindowFunctions.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,15 @@ public static async Task WindowClosingBehavior(Window window)
6666
Environment.Exit(0);
6767
}
6868

69-
#region Window State Management
69+
#region Window State
70+
71+
public static void ShowMinimizedWindow(Window window)
72+
{
73+
window.BringIntoView();
74+
window.WindowState = WindowState.Normal;
75+
window.Activate();
76+
window.Focus();
77+
}
7078

7179
public static async Task ToggleTopMost(MainViewModel vm)
7280
{

0 commit comments

Comments
 (0)