getKeyWindow function
Returns the key window for scene, or a best-effort key window from the
most relevant foreground window scene when scene is omitted.
Implementation
UIWindow? getKeyWindow([UIWindowScene? scene]) {
if (scene != null) return _keyWindowInScene(scene);
final windowScenes = UIApplication.getSharedApplication().connectedScenes
.asDart()
.where(UIWindowScene.isA)
.map(UIWindowScene.as)
.toList();
UIWindow? inactiveWindow;
for (final windowScene in windowScenes) {
final window = _keyWindowInScene(windowScene);
if (window == null) continue;
if (windowScene.activationState == UISceneActivationState.UISceneActivationStateForegroundActive) {
return window;
}
if (windowScene.activationState == UISceneActivationState.UISceneActivationStateForegroundInactive) {
inactiveWindow ??= window;
}
}
return inactiveWindow;
}