getKeyWindow function

UIWindow? getKeyWindow([
  1. UIWindowScene? scene
])

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;
}