From bf32477f89fadea016b8ecb913b3e92e4eaa7004 Mon Sep 17 00:00:00 2001 From: dignow Date: Sun, 3 Sep 2023 22:18:48 +0800 Subject: [PATCH] Remove dup maximized state Signed-off-by: dignow --- .../lib/desktop/pages/connection_page.dart | 3 +- .../lib/desktop/widgets/tabbar_widget.dart | 32 ++++++------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/flutter/lib/desktop/pages/connection_page.dart b/flutter/lib/desktop/pages/connection_page.dart index de87317b3..6d53ecc78 100644 --- a/flutter/lib/desktop/pages/connection_page.dart +++ b/flutter/lib/desktop/pages/connection_page.dart @@ -106,7 +106,8 @@ class _ConnectionPageState extends State @override void onWindowLeaveFullScreen() { // Restore edge border to default edge size. - stateGlobal.resizeEdgeSize.value = kWindowEdgeSize; + stateGlobal.resizeEdgeSize.value = + stateGlobal.isMaximized.isTrue ? kMaximizeEdgeSize : kWindowEdgeSize; } @override diff --git a/flutter/lib/desktop/widgets/tabbar_widget.dart b/flutter/lib/desktop/widgets/tabbar_widget.dart index 148135a81..b27e8fafe 100644 --- a/flutter/lib/desktop/widgets/tabbar_widget.dart +++ b/flutter/lib/desktop/widgets/tabbar_widget.dart @@ -440,7 +440,6 @@ class DesktopTab extends StatelessWidget { tabType: tabType, state: state, tail: tail, - isMaximized: stateGlobal.isMaximized, showMinimize: showMinimize, showMaximize: showMaximize, showClose: showClose, @@ -455,7 +454,6 @@ class WindowActionPanel extends StatefulWidget { final bool isMainWindow; final DesktopTabType tabType; final Rx state; - final RxBool isMaximized; final bool showMinimize; final bool showMaximize; @@ -468,7 +466,6 @@ class WindowActionPanel extends StatefulWidget { required this.isMainWindow, required this.tabType, required this.state, - required this.isMaximized, this.tail, this.showMinimize = true, this.showMaximize = true, @@ -495,18 +492,18 @@ class WindowActionPanelState extends State Future.delayed(Duration(milliseconds: 500), () { if (widget.isMainWindow) { windowManager.isMaximized().then((maximized) { - if (widget.isMaximized.value != maximized) { + if (stateGlobal.isMaximized.value != maximized) { WidgetsBinding.instance.addPostFrameCallback( - (_) => setState(() => widget.isMaximized.value = maximized)); + (_) => setState(() => stateGlobal.setMaximized(maximized))); } }); } else { final wc = WindowController.fromWindowId(kWindowId!); wc.isMaximized().then((maximized) { debugPrint("isMaximized $maximized"); - if (widget.isMaximized.value != maximized) { + if (stateGlobal.isMaximized.value != maximized) { WidgetsBinding.instance.addPostFrameCallback( - (_) => setState(() => widget.isMaximized.value = maximized)); + (_) => setState(() => stateGlobal.setMaximized(maximized))); } }); } @@ -535,10 +532,6 @@ class WindowActionPanelState extends State @override void onWindowMaximize() { - // catch maximize from system - if (!widget.isMaximized.value) { - widget.isMaximized.value = true; - } stateGlobal.setMinimized(false); _setMaximized(true); super.onWindowMaximize(); @@ -546,10 +539,6 @@ class WindowActionPanelState extends State @override void onWindowUnmaximize() { - // catch unmaximize from system - if (widget.isMaximized.value) { - widget.isMaximized.value = false; - } stateGlobal.setMinimized(false); _setMaximized(false); super.onWindowUnmaximize(); @@ -632,9 +621,10 @@ class WindowActionPanelState extends State Offstage( offstage: !widget.showMaximize || Platform.isMacOS, child: Obx(() => ActionIcon( - message: - widget.isMaximized.value ? 'Restore' : 'Maximize', - icon: widget.isMaximized.value + message: stateGlobal.isMaximized.isTrue + ? 'Restore' + : 'Maximize', + icon: stateGlobal.isMaximized.isTrue ? IconFont.restore : IconFont.max, onTap: _toggleMaximize, @@ -671,10 +661,8 @@ class WindowActionPanelState extends State void _toggleMaximize() { toggleMaximize(widget.isMainWindow).then((maximize) { - if (widget.isMaximized.value != maximize) { - // update state for sub window, wc.unmaximize/maximize() will not invoke onWindowMaximize/Unmaximize - widget.isMaximized.value = maximize; - } + // update state for sub window, wc.unmaximize/maximize() will not invoke onWindowMaximize/Unmaximize + stateGlobal.setMaximized(maximize); }); } }