fix: try workaround, macos, subwindow, frozen (#8729)

Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
fufesou
2024-07-17 09:55:46 +08:00
committed by GitHub
parent 188f85b042
commit 092e4089c7
3 changed files with 16 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:async';
import 'package:desktop_multi_window/desktop_multi_window.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hbb/main.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
@@ -417,7 +418,9 @@ class _RemotePageState extends State<RemotePage>
void leaveView(PointerExitEvent evt) {
if (isMacOS) {
DesktopMultiWindow.hideShow();
if (kWindowId != null) {
DesktopMultiWindow.hideShow(kWindowId!);
}
}
if (_ffi.ffiModel.keyboard) {

View File

@@ -141,7 +141,17 @@ class RustDeskMultiWindowManager {
));
}
if (isMacOS) {
Future.microtask(() => windowController.show());
Future.microtask(() {
windowController.show();
// Manually simulate the hide/show event to fix the issue
// https://github.com/rustdesk/rustdesk/issues/8548
// https://github.com/flutter/flutter/issues/133533
// https://github.com/MixinNetwork/flutter-plugins/issues/289#issuecomment-1817665239
// https://github.com/rustdesk/rustdesk/pull/8712#issuecomment-2229912473
Future.delayed(const Duration(milliseconds: 300), () {
DesktopMultiWindow.hideShow(-1);
});
});
}
registerActiveWindow(windowId);
windows.add(windowId);