From 8bc44b0836bafea52dc16fa7511ec612f63f6b38 Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Tue, 15 Jul 2025 18:58:55 +0800 Subject: [PATCH] feat(setting): save current window position when switching to last_location * Added logic to save the current window position immediately when the user switches to `last_location`. * Implemented error handling to log any failures during the save operation. --- .../wox/lib/controllers/wox_setting_controller.dart | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/wox.ui.flutter/wox/lib/controllers/wox_setting_controller.dart b/wox.ui.flutter/wox/lib/controllers/wox_setting_controller.dart index 61ff86db..f1232a4b 100644 --- a/wox.ui.flutter/wox/lib/controllers/wox_setting_controller.dart +++ b/wox.ui.flutter/wox/lib/controllers/wox_setting_controller.dart @@ -4,10 +4,10 @@ import 'package:url_launcher/url_launcher.dart'; import 'package:uuid/v4.dart'; import 'package:wox/api/wox_api.dart'; import 'package:wox/controllers/wox_launcher_controller.dart'; -import 'package:wox/controllers/wox_ai_chat_controller.dart'; import 'package:wox/entity/wox_backup.dart'; import 'package:wox/entity/wox_plugin.dart'; import 'package:wox/entity/wox_theme.dart'; +import 'package:wox/enums/wox_position_type_enum.dart'; import 'package:wox/utils/log.dart'; import 'package:wox/utils/wox_setting_util.dart'; @@ -61,6 +61,17 @@ class WoxSettingController extends GetxController { await WoxApi.instance.updateSetting(key, value); await reloadSetting(); Logger.instance.info(const UuidV4().generate(), 'Setting updated: $key=$value'); + + // If user switches to last_location, save current window position immediately + if (key == "ShowPosition" && value == WoxPositionTypeEnum.POSITION_TYPE_LAST_LOCATION.code) { + try { + final launcherController = Get.find(); + launcherController.saveWindowPositionIfNeeded(); + Logger.instance.info(const UuidV4().generate(), 'Saved current window position when switching to last_location'); + } catch (e) { + Logger.instance.error(const UuidV4().generate(), 'Failed to save window position when switching to last_location: $e'); + } + } } Future updateLang(String langCode) async {