feat: remember window size (#404)

Fixes #398
This commit is contained in:
lollipopkit🏳️‍⚧️
2024-06-22 21:52:48 +08:00
committed by GitHub
parent 1fd68722da
commit da8b6a9010
18 changed files with 160 additions and 4 deletions

View File

@@ -0,0 +1,88 @@
import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/res/store.dart';
import 'package:window_manager/window_manager.dart';
abstract final class WindowSizeListener {
static final _WindowSizeListener instance = _WindowSizeListener();
}
final class _WindowSizeListener implements WindowListener {
@override
void onWindowBlur() {
}
@override
void onWindowClose() {
}
@override
void onWindowDocked() {
}
@override
void onWindowEnterFullScreen() {
}
@override
void onWindowEvent(String eventName) {
}
@override
void onWindowFocus() {
}
@override
void onWindowLeaveFullScreen() {
}
@override
void onWindowMaximize() {
}
@override
void onWindowMinimize() {
}
@override
void onWindowMove() {
}
@override
void onWindowMoved() {
}
@override
void onWindowResize() {
if (!isLinux) return;
final current = Stores.setting.windowSize.fetch();
if (current.isEmpty) return;
windowManager.getSize().then((size) {
Stores.setting.windowSize.put(size.toIntStr());
});
}
@override
void onWindowResized() {
if (!isMacOS || !isWindows) return;
final current = Stores.setting.windowSize.fetch();
if (current.isEmpty) return;
windowManager.getSize().then((size) {
Stores.setting.windowSize.put(size.toIntStr());
});
}
@override
void onWindowRestore() {
}
@override
void onWindowUndocked() {
}
@override
void onWindowUnmaximize() {
}
}