diff --git a/flutter/lib/desktop/pages/connection_tab_page.dart b/flutter/lib/desktop/pages/connection_tab_page.dart index 66f342919..be7c76f2a 100644 --- a/flutter/lib/desktop/pages/connection_tab_page.dart +++ b/flutter/lib/desktop/pages/connection_tab_page.dart @@ -30,12 +30,13 @@ class _ConnectionTabPageState extends State { _ConnectionTabPageState(Map params) { if (params['id'] != null) { - tabController.state.value.tabs.add(TabInfo( + tabController.add(TabInfo( key: params['id'], label: params['id'], selectedIcon: selectedIcon, unselectedIcon: unselectedIcon, page: RemotePage( + key: ValueKey(params['id']), id: params['id'], tabBarHeight: _fullscreenID.value.isNotEmpty ? 0 : kDesktopRemoteTabBarHeight, @@ -63,8 +64,8 @@ class _ConnectionTabPageState extends State { label: id, selectedIcon: selectedIcon, unselectedIcon: unselectedIcon, - closable: false, page: RemotePage( + key: ValueKey(id), id: id, tabBarHeight: _fullscreenID.value.isNotEmpty ? 0 diff --git a/flutter/lib/desktop/pages/desktop_tab_page.dart b/flutter/lib/desktop/pages/desktop_tab_page.dart index 2504c699f..4a2fdb7d2 100644 --- a/flutter/lib/desktop/pages/desktop_tab_page.dart +++ b/flutter/lib/desktop/pages/desktop_tab_page.dart @@ -19,13 +19,15 @@ class _DesktopTabPageState extends State { @override void initState() { super.initState(); - tabController.state.value.tabs.add(TabInfo( + tabController.add(TabInfo( key: kTabLabelHomePage, label: kTabLabelHomePage, selectedIcon: Icons.home_sharp, unselectedIcon: Icons.home_outlined, closable: false, - page: DesktopHomePage())); + page: DesktopHomePage( + key: const ValueKey(kTabLabelHomePage), + ))); } @override @@ -59,6 +61,6 @@ class _DesktopTabPageState extends State { label: kTabLabelSettingPage, selectedIcon: Icons.build_sharp, unselectedIcon: Icons.build_outlined, - page: DesktopSettingPage())); + page: DesktopSettingPage(key: const ValueKey(kTabLabelSettingPage)))); } } diff --git a/flutter/lib/desktop/pages/file_manager_tab_page.dart b/flutter/lib/desktop/pages/file_manager_tab_page.dart index 7ae8e36b3..09577128f 100644 --- a/flutter/lib/desktop/pages/file_manager_tab_page.dart +++ b/flutter/lib/desktop/pages/file_manager_tab_page.dart @@ -26,12 +26,12 @@ class _FileManagerTabPageState extends State { static final IconData unselectedIcon = Icons.file_copy_outlined; _FileManagerTabPageState(Map params) { - tabController.state.value.tabs.add(TabInfo( + tabController.add(TabInfo( key: params['id'], label: params['id'], selectedIcon: selectedIcon, unselectedIcon: unselectedIcon, - page: FileManagerPage(id: params['id']))); + page: FileManagerPage(key: ValueKey(params['id']), id: params['id']))); } @override @@ -53,7 +53,7 @@ class _FileManagerTabPageState extends State { label: id, selectedIcon: selectedIcon, unselectedIcon: unselectedIcon, - page: FileManagerPage(id: id))); + page: FileManagerPage(key: ValueKey(id), id: id))); } else if (call.method == "onDestroy") { tabController.state.value.tabs.forEach((tab) { print("executing onDestroy hook, closing ${tab.label}}");