Merge pull request #2403 from fufesou/fix_connect_on_subwindow

fix connect on subwindow, notify main window
This commit is contained in:
RustDesk
2022-12-01 13:56:50 +08:00
committed by GitHub
5 changed files with 44 additions and 11 deletions

View File

@@ -465,9 +465,9 @@ class _DesktopHomePageState extends State<DesktopHomePage>
rustDeskWinManager.setMethodHandler((call, fromWindowId) async {
debugPrint(
"[Main] call ${call.method} with args ${call.arguments} from window $fromWindowId");
if (call.method == "main_window_on_top") {
if (call.method == kWindowMainWindowOnTop) {
window_on_top(null);
} else if (call.method == "get_window_info") {
} else if (call.method == kWindowGetWindowInfo) {
final screen = (await window_size.getWindowInfo()).screen;
if (screen == null) {
return "";
@@ -494,6 +494,13 @@ class _DesktopHomePageState extends State<DesktopHomePage>
rustDeskWinManager.registerActiveWindow(call.arguments["id"]);
} else if (call.method == kWindowEventHide) {
rustDeskWinManager.unregisterActiveWindow(call.arguments["id"]);
} else if (call.method == kWindowConnect) {
await connectMainDesktop(
call.arguments['id'],
isFileTransfer: call.arguments['isFileTransfer'],
isTcpTunneling: call.arguments['isTcpTunneling'],
isRDP: call.arguments['isRDP'],
);
}
});
_uniLinksSubscription = listenUniLinks();

View File

@@ -8,6 +8,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_hbb/models/chat_model.dart';
import 'package:flutter_hbb/models/state_model.dart';
import 'package:flutter_hbb/consts.dart';
import 'package:flutter_hbb/utils/multi_window_manager.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
import 'package:rxdart/rxdart.dart' as rxdart;
@@ -201,7 +202,8 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
}
_updateScreen() async {
final v = await DesktopMultiWindow.invokeMethod(0, 'get_window_info', '');
final v = await rustDeskWinManager.call(
WindowType.Main, kWindowGetWindowInfo, '');
final String valueStr = v;
if (valueStr.isEmpty) {
_screen = null;

View File

@@ -1033,8 +1033,8 @@ class AddButton extends StatelessWidget {
return ActionIcon(
message: 'New Connection',
icon: IconFont.add,
onTap: () =>
rustDeskWinManager.call(WindowType.Main, "main_window_on_top", ""),
onTap: () => rustDeskWinManager.call(
WindowType.Main, kWindowMainWindowOnTop, ""),
isClose: false);
}
}