Close reader when user click the close button on window frame.

This commit is contained in:
2025-03-03 20:50:11 +08:00
parent 4af15b9139
commit 0f6874f8d7
2 changed files with 63 additions and 8 deletions

View File

@@ -170,6 +170,7 @@ class _ReaderState extends State<Reader>
void didChangeDependencies() {
super.didChangeDependencies();
initImagesPerPage(widget.initialPage ?? 1);
initReaderWindow();
}
void setImageCacheSize() async {
@@ -203,6 +204,7 @@ class _ReaderState extends State<Reader>
DataSync().onDataChanged();
});
PaintingBinding.instance.imageCache.maximumSizeBytes = 100 << 20;
disposeReaderWindow();
super.dispose();
}
@@ -499,6 +501,13 @@ abstract mixin class _ReaderLocation {
mixin class _ReaderWindow {
bool isFullscreen = false;
late WindowFrameController windowFrame;
void initReaderWindow() {
windowFrame = WindowFrame.of(App.rootContext);
windowFrame.addCloseListener(onWindowClose);
}
void fullscreen() async {
await windowManager.hide();
await windowManager.setFullScreen(!isFullscreen);
@@ -506,6 +515,15 @@ mixin class _ReaderWindow {
isFullscreen = !isFullscreen;
WindowFrame.of(App.rootContext).setWindowFrame(!isFullscreen);
}
bool onWindowClose() {
App.rootContext.pop();
return false;
}
void disposeReaderWindow() {
windowFrame.removeCloseListener(onWindowClose);
}
}
enum ReaderMode {