Initialize OSX OpenFileHandler in invokeAndWait
This commit is contained in:
parent
d7946bd070
commit
076d7caf5c
@ -6,6 +6,7 @@ import java.awt.desktop.OpenFilesEvent;
|
||||
import java.awt.desktop.OpenFilesHandler;
|
||||
import java.awt.desktop.PreferencesHandler;
|
||||
import java.awt.desktop.QuitHandler;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -92,7 +93,6 @@ final class OSXSetup {
|
||||
|
||||
// Set handlers
|
||||
osxDesktop.setAboutHandler(ABOUT_HANDLER);
|
||||
osxDesktop.setOpenFileHandler(OPEN_FILE_HANDLER);
|
||||
osxDesktop.setPreferencesHandler(PREFERENCES_HANDLER);
|
||||
osxDesktop.setQuitHandler(QUIT_HANDLER);
|
||||
|
||||
@ -115,4 +115,20 @@ final class OSXSetup {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the open file handler, which handles file association on macOS.
|
||||
*/
|
||||
public static void setupOSXOpenFileHandler() {
|
||||
if (SystemInfo.getPlatform() != Platform.MAC_OS) {
|
||||
log.warn("Attempting to set up OSX file handler on non-MAC_OS");
|
||||
}
|
||||
final Desktop osxDesktop = Desktop.getDesktop();
|
||||
if (osxDesktop == null) {
|
||||
// Application is null: Something is wrong, give up on OS setup
|
||||
throw new NullPointerException("com.apple.eawt.Application.getApplication() returned NULL. "
|
||||
+ "Aborting OSX UI Setup.");
|
||||
}
|
||||
osxDesktop.setOpenFileHandler(OPEN_FILE_HANDLER);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -85,6 +85,8 @@ public class SwingStartup {
|
||||
SwingUtilities.invokeAndWait(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
// Set up the OSX file open handler here so that it can handle files that are opened when OR is not yet running.
|
||||
OSXSetup.setupOSXOpenFileHandler();
|
||||
runner.runInEDT(args);
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user