From 4f7af964c62db014745d041e0fd5c3e4b7386fd7 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sat, 5 Nov 2022 10:35:56 +0800 Subject: [PATCH] desktop cm: auto focus & merge setSizeAlignment Signed-off-by: fufesou --- flutter/lib/common/widgets/chat_page.dart | 1 + flutter/lib/main.dart | 11 +++-------- flutter/lib/models/chat_model.dart | 7 ++----- flutter/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/flutter/lib/common/widgets/chat_page.dart b/flutter/lib/common/widgets/chat_page.dart index 3b4e06a6f..510ce1f73 100644 --- a/flutter/lib/common/widgets/chat_page.dart +++ b/flutter/lib/common/widgets/chat_page.dart @@ -54,6 +54,7 @@ class ChatPage extends StatelessWidget implements PageShape { return DashChat( onSend: (chatMsg) { chatModel.send(chatMsg); + chatModel.inputNode.requestFocus(); }, currentUser: chatModel.me, messages: chatModel diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index 3621a3bf8..afc98a1e1 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -160,15 +160,10 @@ void runConnectionManagerScreen() async { ); windowManager.waitUntilReadyToShow(windowOptions, () async { await windowManager.show(); + await Future.wait([windowManager.focus(), windowManager.setOpacity(1)]); // ensure initial window size to be changed - await windowManager.setSize(kConnectionManagerWindowSize); - await Future.wait([ - windowManager.setAlignment(Alignment.topRight), - windowManager.focus(), - windowManager.setOpacity(1) - ]); - // ensure - windowManager.setAlignment(Alignment.topRight); + await windowManager.setSizeAlignment( + kConnectionManagerWindowSize, Alignment.topRight); }); } diff --git a/flutter/lib/models/chat_model.dart b/flutter/lib/models/chat_model.dart index 2fdede718..590a92a4a 100644 --- a/flutter/lib/models/chat_model.dart +++ b/flutter/lib/models/chat_model.dart @@ -193,12 +193,9 @@ class ChatModel with ChangeNotifier { if (_isShowCMChatPage) { _isShowCMChatPage = !_isShowCMChatPage; notifyListeners(); - await windowManager.setSize(Size(300, 400)); - await windowManager.setAlignment(Alignment.topRight); + await windowManager.setSizeAlignment(Size(300, 400), Alignment.topRight); } else { - await windowManager.setSize(Size(600, 400)); - await Future.delayed(Duration(milliseconds: 100)); - await windowManager.setAlignment(Alignment.topRight); + await windowManager.setSizeAlignment(Size(600, 400), Alignment.topRight); _isShowCMChatPage = !_isShowCMChatPage; notifyListeners(); } diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index 7dfb53538..3cbb1fc21 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -60,7 +60,7 @@ dependencies: window_manager: git: url: https://github.com/Kingtous/rustdesk_window_manager - ref: 88487257cbafc501599ab4f82ec343b46acec020 + ref: d1e4b40f4a1ffeb8630696be6883dd31bf307998 desktop_multi_window: git: url: https://github.com/Kingtous/rustdesk_desktop_multi_window