Merge pull request #4586 from 21pages/msgbox

not accept dialog show when desktop page dispose
This commit is contained in:
RustDesk 2023-06-08 16:28:25 +08:00 committed by GitHub
commit b18f1a719b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 4 deletions

View File

@ -600,12 +600,16 @@ class OverlayDialogManager {
int _tagCount = 0; int _tagCount = 0;
OverlayEntry? _mobileActionsOverlayEntry; OverlayEntry? _mobileActionsOverlayEntry;
bool _stop = false;
void setOverlayState(OverlayKeyState overlayKeyState) { void setOverlayState(OverlayKeyState overlayKeyState) {
_overlayKeyState = overlayKeyState; _overlayKeyState = overlayKeyState;
} }
void dismissAll() { void dismissAll({bool? stop}) {
if (stop != null) {
_stop = stop;
}
_dialogs.forEach((key, value) { _dialogs.forEach((key, value) {
value.complete(null); value.complete(null);
BackButtonInterceptor.removeByName(key); BackButtonInterceptor.removeByName(key);
@ -625,6 +629,7 @@ class OverlayDialogManager {
String? tag, String? tag,
bool useAnimation = true, bool useAnimation = true,
bool forceGlobal = false}) { bool forceGlobal = false}) {
if (_stop) return Future(() => null);
final overlayState = final overlayState =
forceGlobal ? globalKey.currentState?.overlay : _overlayKeyState.state; forceGlobal ? globalKey.currentState?.overlay : _overlayKeyState.state;

View File

@ -97,7 +97,7 @@ class _FileManagerPageState extends State<FileManagerPage>
void dispose() { void dispose() {
model.close().whenComplete(() { model.close().whenComplete(() {
_ffi.close(); _ffi.close();
_ffi.dialogManager.dismissAll(); _ffi.dialogManager.dismissAll(stop: true);
if (!Platform.isLinux) { if (!Platform.isLinux) {
Wakelock.disable(); Wakelock.disable();
} }

View File

@ -70,7 +70,7 @@ class _PortForwardPageState extends State<PortForwardPage>
@override @override
void dispose() { void dispose() {
_ffi.close(); _ffi.close();
_ffi.dialogManager.dismissAll(); _ffi.dialogManager.dismissAll(stop: true);
if (!Platform.isLinux) { if (!Platform.isLinux) {
Wakelock.disable(); Wakelock.disable();
} }

View File

@ -220,7 +220,7 @@ class _RemotePageState extends State<RemotePage>
_rawKeyFocusNode.dispose(); _rawKeyFocusNode.dispose();
_ffi.close(); _ffi.close();
_timer?.cancel(); _timer?.cancel();
_ffi.dialogManager.dismissAll(); _ffi.dialogManager.dismissAll(stop: true);
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
overlays: SystemUiOverlay.values); overlays: SystemUiOverlay.values);
if (!Platform.isLinux) { if (!Platform.isLinux) {