Merge remote-tracking branch 'origin/GP-1049-dragonmacher-tip-of-the-day-modal-issue'

This commit is contained in:
ghidra1 2021-06-23 17:52:34 -04:00
commit 047b009e3a
2 changed files with 36 additions and 30 deletions

View file

@ -143,6 +143,16 @@ public class GhidraRun implements GhidraLaunchable {
updateSplashScreenStatusMessage("Creating project manager...");
ProjectManager pm = new GhidraProjectManager();
updateSplashScreenStatusMessage("Creating front end tool...");
// Show this warning before creating the tool. If we create the tool first, then we may
// see odd dialog behavior caused tool plugins creating dialogs during initialization.
if (Application.isTestBuild()) {
Msg.showWarn(GhidraRun.class, null, "Unsupported Ghidra Distribution",
"WARNING! Please be aware that this is an unsupported and uncertified\n" +
"build of Ghidra! This software may be unstable and data created\n" +
"may be incompatible with future releases.");
}
FrontEndTool tool = new FrontEndTool(pm);
boolean reopen = true;
@ -164,13 +174,6 @@ public class GhidraRun implements GhidraLaunchable {
projectLocator = pm.getLastOpenedProject();
}
if (Application.isTestBuild()) {
Msg.showWarn(GhidraRun.class, tool.getToolFrame(), "Unsupported Ghidra Distribution",
"WARNING! Please be aware that this is an unsupported and uncertified\n" +
"build of Ghidra! This software may be unstable and data created\n" +
"may be incompatible with future releases.");
}
tool.setVisible(true);
if (projectLocator != null) {

View file

@ -1764,9 +1764,12 @@ public class DockingWindowManager implements PropertyChangeListener, Placeholder
bestParent = getBestNonModalParent(provider, bestParent);
}
if (bestParent == null) {
bestParent = getJavaActiveWindow();
}
// We should no longer need this code. If the above could not find a suitable parent, then
// we can allow a null return value, which should signal to Java to pick a reasonable parent.
// If we put this code back, then make sure the chosen window is not transient.
// if (bestParent == null) {
// bestParent = getActiveNonTransientWindow();
// }
if (bestParent != null && !bestParent.isShowing()) {
bestParent = null; // don't let non-showing windows be parents