Merge pull request #1449 from SiboVG/fix-macOS-file-association
Initialize OSX OpenFileHandler in invokeAndWait
This commit is contained in:
commit
9e73f6e4e2
@ -2,7 +2,6 @@ package net.sf.openrocket.startup;
|
|||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.desktop.AboutHandler;
|
import java.awt.desktop.AboutHandler;
|
||||||
import java.awt.desktop.OpenFilesEvent;
|
|
||||||
import java.awt.desktop.OpenFilesHandler;
|
import java.awt.desktop.OpenFilesHandler;
|
||||||
import java.awt.desktop.PreferencesHandler;
|
import java.awt.desktop.PreferencesHandler;
|
||||||
import java.awt.desktop.QuitHandler;
|
import java.awt.desktop.QuitHandler;
|
||||||
@ -15,7 +14,6 @@ import net.sf.openrocket.arch.SystemInfo.Platform;
|
|||||||
import net.sf.openrocket.gui.dialogs.AboutDialog;
|
import net.sf.openrocket.gui.dialogs.AboutDialog;
|
||||||
import net.sf.openrocket.gui.dialogs.preferences.PreferencesDialog;
|
import net.sf.openrocket.gui.dialogs.preferences.PreferencesDialog;
|
||||||
import net.sf.openrocket.gui.main.BasicFrame;
|
import net.sf.openrocket.gui.main.BasicFrame;
|
||||||
import net.sf.openrocket.gui.main.MRUDesignFile;
|
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
@ -92,7 +90,6 @@ final class OSXSetup {
|
|||||||
|
|
||||||
// Set handlers
|
// Set handlers
|
||||||
osxDesktop.setAboutHandler(ABOUT_HANDLER);
|
osxDesktop.setAboutHandler(ABOUT_HANDLER);
|
||||||
osxDesktop.setOpenFileHandler(OPEN_FILE_HANDLER);
|
|
||||||
osxDesktop.setPreferencesHandler(PREFERENCES_HANDLER);
|
osxDesktop.setPreferencesHandler(PREFERENCES_HANDLER);
|
||||||
osxDesktop.setQuitHandler(QUIT_HANDLER);
|
osxDesktop.setQuitHandler(QUIT_HANDLER);
|
||||||
|
|
||||||
@ -115,4 +112,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() {
|
SwingUtilities.invokeAndWait(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
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);
|
runner.runInEDT(args);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user