cache window size/pos

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-17 11:30:21 +08:00
parent 470140a068
commit 8a3cf34cb1
5 changed files with 59 additions and 8 deletions

View File

@@ -14,6 +14,7 @@ import 'package:PiliPlus/utils/context_ext.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -96,6 +97,32 @@ class _MainAppState extends State<MainApp>
super.dispose();
}
@override
void onWindowMoved() {
updateWindowOffset();
}
@override
void onWindowResized() {
updateWindowSize();
updateWindowOffset();
}
Future<void> updateWindowOffset() async {
if (!await windowManager.isMaximized()) {
final Offset offset = await windowManager.getPosition();
GStorage.setting.put(SettingBoxKey.windowPosition, [
offset.dx,
offset.dy,
]);
}
}
Future<void> updateWindowSize() async {
final Size size = await windowManager.getSize();
GStorage.setting.put(SettingBoxKey.windowSize, [size.width, size.height]);
}
@override
void onWindowClose() {
if (_mainController.minimizeOnExit) {