private void openFilesAndOpenToolAsNecessary(List<DomainFile> domainFiles,
			Runnable finishedCallback) {

		finishedCallback = Dummy.ifNull(finishedCallback);

		if (associatedRunningTool != null) {
			// this button has a running tool, no need to open one
			openDomainFiles(associatedRunningTool, domainFiles);
			return;
		}

		DockingWindowManager manager = DockingWindowManager.getInstance(this);
		final JFrame toolFrame = manager.getRootFrame();
		Component glassPane = toolFrame.getGlassPane();
		if (!(glassPane instanceof GGlassPane)) {
			// We cannot perform the tool launching animation, so just do the old fashion way
			Msg.debug(this, "Found root frame without a GGlassPane registered!");

			// try to recover without animation
			PluginTool newTool = plugin.getActiveWorkspace().runTool(template);
			openDomainFiles(newTool, domainFiles);
			finishedCallback.run();
			return;
		}

		launchToolWithAnimationAndOpenFiles(domainFiles, toolFrame, (GGlassPane) glassPane,
			finishedCallback);
	}
Fix the button state after dragging/dropping, since this is broken in Java
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ToolButton.java