Skip to content

Commit

Permalink
Fix dialog focus on macOS (#408)
Browse files Browse the repository at this point in the history
Prevent additional QZ Tray instances being launched when in CLI or IDE and clicking on "About", etc.
  • Loading branch information
Vzor- authored and tresf committed Jan 31, 2019
1 parent ec2f876 commit fecdce3
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/qz/ui/BasicDialog.java
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,7 @@
package qz.ui; package qz.ui;


import qz.common.Constants; import qz.common.Constants;
import qz.utils.MacUtilities;
import qz.utils.ShellUtilities; import qz.utils.ShellUtilities;
import qz.utils.SystemUtilities; import qz.utils.SystemUtilities;


Expand Down Expand Up @@ -159,7 +160,9 @@ public ImageIcon getIcon(IconCache.Icon icon) {
public void setVisible(boolean b) { public void setVisible(boolean b) {
// fix window focus on macOS // fix window focus on macOS
if (SystemUtilities.isMac() && !GraphicsEnvironment.isHeadless()) { if (SystemUtilities.isMac() && !GraphicsEnvironment.isHeadless()) {
ShellUtilities.executeAppleScript("tell application \"" + Constants.ABOUT_TITLE + "\" to activate"); ShellUtilities.executeAppleScript("tell application \"System Events\" " +
"set frontmost of every process whose unix id is " + MacUtilities.getProcessID() + " to true " +
"end tell");
} }
super.setVisible(b); super.setVisible(b);
} }
Expand Down
11 changes: 11 additions & 0 deletions src/qz/utils/MacUtilities.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
package qz.utils; package qz.utils;


import com.apple.OSXAdapter; import com.apple.OSXAdapter;
import com.sun.jna.Library;
import com.sun.jna.Native;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import qz.common.TrayManager; import qz.common.TrayManager;
Expand Down Expand Up @@ -106,4 +108,13 @@ public static int getScaleFactor() {
return 1; return 1;
} }


public static int getProcessID() {
return CLibrary.INSTANCE.getpid();
}

private interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("c", CLibrary.class);
int getpid ();
}

} }

0 comments on commit fecdce3

Please sign in to comment.