mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
Fix Fullscreen switch (#229)
* Fix Fullscreen switch for windows * Fix Fullscreen switch for windows
This commit is contained in:
@@ -6,10 +6,15 @@ import 'package:flutter/foundation.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:venera/foundation/app.dart';
|
import 'package:venera/foundation/app.dart';
|
||||||
import 'package:venera/foundation/comic_source/comic_source.dart';
|
import 'package:venera/foundation/comic_source/comic_source.dart';
|
||||||
|
import 'package:venera/foundation/global_state.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
const _kTitleBarHeight = 36.0;
|
const _kTitleBarHeight = 36.0;
|
||||||
|
|
||||||
|
void toggleWindowFrame() {
|
||||||
|
GlobalState.find<_WindowFrameState>().toggleWindowFrame();
|
||||||
|
}
|
||||||
|
|
||||||
class WindowFrame extends StatefulWidget {
|
class WindowFrame extends StatefulWidget {
|
||||||
const WindowFrame(this.child, {super.key});
|
const WindowFrame(this.child, {super.key});
|
||||||
|
|
||||||
@@ -19,10 +24,14 @@ class WindowFrame extends StatefulWidget {
|
|||||||
State<WindowFrame> createState() => _WindowFrameState();
|
State<WindowFrame> createState() => _WindowFrameState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _WindowFrameState extends State<WindowFrame> {
|
class _WindowFrameState extends AutomaticGlobalState<WindowFrame> {
|
||||||
bool isHideWindowFrame = false;
|
bool isHideWindowFrame = false;
|
||||||
bool useDarkTheme = false;
|
bool useDarkTheme = false;
|
||||||
|
|
||||||
|
void toggleWindowFrame() {
|
||||||
|
isHideWindowFrame = !isHideWindowFrame;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (App.isMobile) return widget.child;
|
if (App.isMobile) return widget.child;
|
||||||
@@ -99,6 +108,9 @@ class _WindowFrameState extends State<WindowFrame> {
|
|||||||
return body;
|
return body;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Object? get key => 'WindowFrame';
|
||||||
}
|
}
|
||||||
|
|
||||||
class WindowButtons extends StatefulWidget {
|
class WindowButtons extends StatefulWidget {
|
||||||
|
@@ -15,6 +15,7 @@ import 'package:photo_view/photo_view_gallery.dart';
|
|||||||
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
|
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
|
||||||
import 'package:venera/components/components.dart';
|
import 'package:venera/components/components.dart';
|
||||||
import 'package:venera/components/custom_slider.dart';
|
import 'package:venera/components/custom_slider.dart';
|
||||||
|
import 'package:venera/components/window_frame.dart';
|
||||||
import 'package:venera/foundation/app.dart';
|
import 'package:venera/foundation/app.dart';
|
||||||
import 'package:venera/foundation/appdata.dart';
|
import 'package:venera/foundation/appdata.dart';
|
||||||
import 'package:venera/foundation/cache_manager.dart';
|
import 'package:venera/foundation/cache_manager.dart';
|
||||||
@@ -191,6 +192,9 @@ class _ReaderState extends State<Reader>
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
if (isFullscreen) {
|
||||||
|
fullscreen();
|
||||||
|
}
|
||||||
autoPageTurningTimer?.cancel();
|
autoPageTurningTimer?.cancel();
|
||||||
focusNode.dispose();
|
focusNode.dispose();
|
||||||
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
|
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
|
||||||
@@ -498,6 +502,7 @@ mixin class _ReaderWindow {
|
|||||||
void fullscreen() {
|
void fullscreen() {
|
||||||
windowManager.setFullScreen(!isFullscreen);
|
windowManager.setFullScreen(!isFullscreen);
|
||||||
isFullscreen = !isFullscreen;
|
isFullscreen = !isFullscreen;
|
||||||
|
toggleWindowFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user