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;
|
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;
|
||||||
|
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user