not accept dialog show when desktop page dispose
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
parent
150be1133a
commit
52733654c3
@ -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…
Reference in New Issue
Block a user