From 52e96f48909d952a4710284323aaf47e29222e4d Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sat, 19 Mar 2016 15:35:09 +0000 Subject: [PATCH] Support Mac Drop-on-Dock file events --- source/net/filebot/Main.java | 1 + source/net/filebot/mac/MacAppUtilities.java | 9 +++++++++ source/net/filebot/ui/MainFrame.java | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/net/filebot/Main.java b/source/net/filebot/Main.java index 0dbc63f8..1204fff1 100644 --- a/source/net/filebot/Main.java +++ b/source/net/filebot/Main.java @@ -232,6 +232,7 @@ public class Main { MacAppUtilities.initializeApplication(); MacAppUtilities.setWindowCanFullScreen(frame); MacAppUtilities.setDefaultMenuBar(FileBotMenuBar.createHelp()); + MacAppUtilities.setOpenFileHandler(openFiles -> eventBus.post(new FileTransferable(openFiles))); } else if (isUbuntuApp()) { // Ubuntu specific configuration String options = System.getenv("JAVA_TOOL_OPTIONS"); diff --git a/source/net/filebot/mac/MacAppUtilities.java b/source/net/filebot/mac/MacAppUtilities.java index ff135e66..62b77a3f 100644 --- a/source/net/filebot/mac/MacAppUtilities.java +++ b/source/net/filebot/mac/MacAppUtilities.java @@ -11,6 +11,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.function.Consumer; import java.util.logging.Level; import javax.swing.JMenuBar; @@ -135,6 +136,14 @@ public class MacAppUtilities { } } + public static void setOpenFileHandler(Consumer> handler) { + try { + Application.getApplication().setOpenFileHandler(evt -> handler.accept(evt.getFiles())); + } catch (Throwable t) { + debug.log(Level.WARNING, t.getMessage(), t); + } + } + public static void initializeApplication() { // improved UI defaults UIManager.put("TitledBorder.border", UIManager.getBorder("InsetBorder.aquaVariant")); diff --git a/source/net/filebot/ui/MainFrame.java b/source/net/filebot/ui/MainFrame.java index 918e93cd..84bfde11 100644 --- a/source/net/filebot/ui/MainFrame.java +++ b/source/net/filebot/ui/MainFrame.java @@ -179,7 +179,7 @@ public class MainFrame extends JFrame { if (builder != null) { if (builder.equals(selectedBuilder)) { selectedPanel = panel; - } else { + } else if (panel.isVisible()) { panel.setVisible(false); eventBus.unregister(panel); }