From aaf3bcef17ccd7bae18b0783f75ce2842743aa2a Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Fri, 19 Feb 2021 18:19:50 -0500 Subject: [PATCH] Test fix for splash screen test --- .../java/docking/DockingWindowManager.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Ghidra/Framework/Docking/src/main/java/docking/DockingWindowManager.java b/Ghidra/Framework/Docking/src/main/java/docking/DockingWindowManager.java index 0f5687979b..4b7d9b4476 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/DockingWindowManager.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/DockingWindowManager.java @@ -1735,11 +1735,7 @@ public class DockingWindowManager implements PropertyChangeListener, Placeholder } Component bestCenter = getJavaActiveWindow(); - Window bestParent = getParentWindow(bestCenter); - - if (!provider.isModal()) { - bestParent = getBestNonModalParent(provider, bestParent); - } + Window bestParent = getBestParent(provider, bestCenter); // // Note: prefer the active window; allow user's choice of center component when it is @@ -1762,6 +1758,20 @@ public class DockingWindowManager implements PropertyChangeListener, Placeholder } } + private static Window getBestParent(DialogComponentProvider provider, Component component) { + Window bestParent = getParentWindow(component); + if (!provider.isModal()) { + bestParent = getBestNonModalParent(provider, bestParent); + } + + if (bestParent == null) { + KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); + bestParent = kfm.getActiveWindow(); + } + + return bestParent; + } + private static Window getBestNonModalParent(DialogComponentProvider newProvider, Window bestParent) {