Merge pull request #4586 from 21pages/msgbox
not accept dialog show when desktop page dispose
This commit is contained in:
		
						commit
						b18f1a719b
					
				| @ -600,12 +600,16 @@ class OverlayDialogManager { | ||||
|   int _tagCount = 0; | ||||
| 
 | ||||
|   OverlayEntry? _mobileActionsOverlayEntry; | ||||
|   bool _stop = false; | ||||
| 
 | ||||
|   void setOverlayState(OverlayKeyState overlayKeyState) { | ||||
|     _overlayKeyState = overlayKeyState; | ||||
|   } | ||||
| 
 | ||||
|   void dismissAll() { | ||||
|   void dismissAll({bool? stop}) { | ||||
|     if (stop != null) { | ||||
|       _stop = stop; | ||||
|     } | ||||
|     _dialogs.forEach((key, value) { | ||||
|       value.complete(null); | ||||
|       BackButtonInterceptor.removeByName(key); | ||||
| @ -625,6 +629,7 @@ class OverlayDialogManager { | ||||
|       String? tag, | ||||
|       bool useAnimation = true, | ||||
|       bool forceGlobal = false}) { | ||||
|     if (_stop) return Future(() => null); | ||||
|     final overlayState = | ||||
|         forceGlobal ? globalKey.currentState?.overlay : _overlayKeyState.state; | ||||
| 
 | ||||
|  | ||||
| @ -97,7 +97,7 @@ class _FileManagerPageState extends State<FileManagerPage> | ||||
|   void dispose() { | ||||
|     model.close().whenComplete(() { | ||||
|       _ffi.close(); | ||||
|       _ffi.dialogManager.dismissAll(); | ||||
|       _ffi.dialogManager.dismissAll(stop: true); | ||||
|       if (!Platform.isLinux) { | ||||
|         Wakelock.disable(); | ||||
|       } | ||||
|  | ||||
| @ -70,7 +70,7 @@ class _PortForwardPageState extends State<PortForwardPage> | ||||
|   @override | ||||
|   void dispose() { | ||||
|     _ffi.close(); | ||||
|     _ffi.dialogManager.dismissAll(); | ||||
|     _ffi.dialogManager.dismissAll(stop: true); | ||||
|     if (!Platform.isLinux) { | ||||
|       Wakelock.disable(); | ||||
|     } | ||||
|  | ||||
| @ -220,7 +220,7 @@ class _RemotePageState extends State<RemotePage> | ||||
|     _rawKeyFocusNode.dispose(); | ||||
|     _ffi.close(); | ||||
|     _timer?.cancel(); | ||||
|     _ffi.dialogManager.dismissAll(); | ||||
|     _ffi.dialogManager.dismissAll(stop: true); | ||||
|     SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, | ||||
|         overlays: SystemUiOverlay.values); | ||||
|     if (!Platform.isLinux) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user