This commit is contained in:
2024-11-11 18:43:32 +08:00
parent e1df69e785
commit 05bbef0b8a

View File

@@ -485,8 +485,15 @@ class WindowPlacement {
} }
} }
static Rect? lastValidRect;
static Future<WindowPlacement> get current async { static Future<WindowPlacement> get current async {
var rect = await windowManager.getBounds(); var rect = await windowManager.getBounds();
if(validate(rect)) {
lastValidRect = rect;
} else {
rect = lastValidRect ?? defaultPlacement.rect;
}
var isMaximized = await windowManager.isMaximized(); var isMaximized = await windowManager.isMaximized();
return WindowPlacement(rect, isMaximized); return WindowPlacement(rect, isMaximized);
} }
@@ -501,9 +508,6 @@ class WindowPlacement {
static void loop() async { static void loop() async {
timer ??= Timer.periodic(const Duration(milliseconds: 100), (timer) async { timer ??= Timer.periodic(const Duration(milliseconds: 100), (timer) async {
var placement = await WindowPlacement.current; var placement = await WindowPlacement.current;
if (!validate(placement.rect)) {
return;
}
if (placement.rect != cache.rect || if (placement.rect != cache.rect ||
placement.isMaximized != cache.isMaximized) { placement.isMaximized != cache.isMaximized) {
cache = placement; cache = placement;