diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index 2bbb224cb..86f532d2a 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -555,7 +555,7 @@ class MyTheme { return themeModeFromString(bind.mainGetLocalOption(key: kCommConfKeyTheme)); } - static void changeDarkMode(ThemeMode mode) async { + static Future changeDarkMode(ThemeMode mode) async { Get.changeThemeMode(mode); if (desktopType == DesktopType.main || isAndroid || isIOS || isWeb) { if (mode == ThemeMode.system) { diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index ebe55ca19..ada38ecf0 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -369,8 +369,8 @@ class _GeneralState extends State<_General> { Widget theme() { final current = MyTheme.getThemeModePreference().toShortString(); - onChanged(String value) { - MyTheme.changeDarkMode(MyTheme.themeModeFromString(value)); + onChanged(String value) async { + await MyTheme.changeDarkMode(MyTheme.themeModeFromString(value)); setState(() {}); } diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index 18578f81b..16324c0e5 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -507,7 +507,7 @@ _registerEventHandler() { platformFFI.registerEventHandler('theme', 'theme', (evt) async { String? dark = evt['dark']; if (dark != null) { - MyTheme.changeDarkMode(MyTheme.themeModeFromString(dark)); + await MyTheme.changeDarkMode(MyTheme.themeModeFromString(dark)); } }); platformFFI.registerEventHandler('language', 'language', (_) async {