@@ -13,12 +13,9 @@ import 'package:scaled_app/scaled_app.dart';
13
13
import 'package:window_manager/window_manager.dart' ;
14
14
15
15
class InitAppWindowTask extends LaunchTask with WindowListener {
16
- InitAppWindowTask ({
17
- this .title = 'AppFlowy' ,
18
- });
16
+ InitAppWindowTask ({this .title = 'AppFlowy' });
19
17
20
18
final String title;
21
-
22
19
final windowSizeManager = WindowSizeManager ();
23
20
24
21
@override
@@ -48,7 +45,7 @@ class InitAppWindowTask extends LaunchTask with WindowListener {
48
45
final position = await windowSizeManager.getPosition ();
49
46
50
47
if (PlatformExtension .isWindows) {
51
- doWhenWindowReady (() {
48
+ doWhenWindowReady (() async {
52
49
appWindow.minSize = windowOptions.minimumSize;
53
50
appWindow.maxSize = windowOptions.maximumSize;
54
51
appWindow.size = windowSize;
@@ -58,6 +55,13 @@ class InitAppWindowTask extends LaunchTask with WindowListener {
58
55
}
59
56
60
57
appWindow.show ();
58
+
59
+ /// on Windows we maximize the window if it was previously closed
60
+ /// from a maximized state.
61
+ final isMaximized = await windowSizeManager.getWindowMaximized ();
62
+ if (isMaximized) {
63
+ appWindow.maximize ();
64
+ }
61
65
});
62
66
} else {
63
67
await windowManager.waitUntilReadyToShow (windowOptions, () async {
@@ -78,16 +82,20 @@ class InitAppWindowTask extends LaunchTask with WindowListener {
78
82
}
79
83
80
84
@override
81
- Future <void > onWindowResize () async {
82
- super .onWindowResize ();
85
+ Future <void > onWindowMaximize () async {
86
+ super .onWindowMaximize ();
87
+ await windowSizeManager.setWindowMaximized (true );
88
+ }
83
89
84
- final currentWindowSize = await windowManager.getSize ();
85
- return windowSizeManager.setSize (currentWindowSize);
90
+ @override
91
+ Future <void > onWindowUnmaximize () async {
92
+ super .onWindowUnmaximize ();
93
+ await windowSizeManager.setWindowMaximized (false );
86
94
}
87
95
88
96
@override
89
- void onWindowMaximize () async {
90
- super .onWindowMaximize ();
97
+ Future < void > onWindowResize () async {
98
+ super .onWindowResize ();
91
99
92
100
final currentWindowSize = await windowManager.getSize ();
93
101
return windowSizeManager.setSize (currentWindowSize);
0 commit comments