Merge pull request #1229 from Kingtous/flutter_desktop

feat: add focus with restore
This commit is contained in:
RustDesk 2022-08-09 19:52:38 +08:00 committed by GitHub
commit 26ed41ed32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 16 additions and 10 deletions

View File

@ -1,6 +1,7 @@
import 'dart:async';
import 'dart:io';
import 'package:desktop_multi_window/desktop_multi_window.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@ -110,10 +111,15 @@ backToHome() {
Navigator.popUntil(globalKey.currentContext!, ModalRoute.withName("/"));
}
void window_on_top() {
windowManager.restore();
windowManager.show();
windowManager.focus();
void window_on_top(int? id) {
if (id == null) {
// main window
windowManager.restore();
windowManager.show();
windowManager.focus();
} else {
WindowController.fromWindowId(id)..focus()..show();
}
}
typedef DialogBuilder = CustomAlertDialog Function(

View File

@ -49,9 +49,9 @@ class _ConnectionTabPageState extends State<ConnectionTabPage>
"call ${call.method} with args ${call.arguments} from window ${fromWindowId}");
// for simplify, just replace connectionId
if (call.method == "new_remote_desktop") {
window_on_top();
final args = jsonDecode(call.arguments);
final id = args['id'];
window_on_top(windowId());
final indexOf = connectionIds.indexOf(id);
if (indexOf >= 0) {
initialIndex = indexOf;

View File

@ -472,7 +472,7 @@ class _DesktopHomePageState extends State<DesktopHomePage> with TrayListener, Wi
print(
"call ${call.method} with args ${call.arguments} from window ${fromWindowId}");
if (call.method == "main_window_on_top") {
window_on_top();
window_on_top(null);
}
});
}

View File

@ -46,9 +46,9 @@ class _FileManagerTabPageState extends State<FileManagerTabPage>
"call ${call.method} with args ${call.arguments} from window ${fromWindowId}");
// for simplify, just replace connectionId
if (call.method == "new_file_transfer") {
window_on_top();
final args = jsonDecode(call.arguments);
final id = args['id'];
window_on_top(windowId());
final indexOf = connectionIds.indexOf(id);
if (indexOf >= 0) {
initialIndex = indexOf;

View File

@ -236,8 +236,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: ce9e333d822fe6cbf91c8634bae023bf78700d94
resolved-ref: ce9e333d822fe6cbf91c8634bae023bf78700d94
ref: bbe24b8af079a756f2d39158dd2034127f0e1c73
resolved-ref: bbe24b8af079a756f2d39158dd2034127f0e1c73
url: "https://github.com/Kingtous/rustdesk_desktop_multi_window"
source: git
version: "0.1.0"

View File

@ -62,7 +62,7 @@ dependencies:
desktop_multi_window:
git:
url: https://github.com/Kingtous/rustdesk_desktop_multi_window
ref: ce9e333d822fe6cbf91c8634bae023bf78700d94
ref: c53879e9ce4ed038af393a02bf2c7084ad4b53aa
# bitsdojo_window: ^0.1.2
freezed_annotation: ^2.0.3
tray_manager: 0.1.7