mirror of
https://github.com/deathmarine/Luyten.git
synced 2024-11-26 22:20:32 +00:00
Merge pull request #142 from vlsi/mac_meta_key
use META (cmd) key instead of CTRL for macOS
This commit is contained in:
commit
f1ccf991d7
14
src/us/deathmarine/luyten/Keymap.java
Normal file
14
src/us/deathmarine/luyten/Keymap.java
Normal file
@ -0,0 +1,14 @@
|
||||
package us.deathmarine.luyten;
|
||||
|
||||
import java.awt.event.InputEvent;
|
||||
|
||||
public final class Keymap {
|
||||
/**
|
||||
* Ctrl+click defaults to "context menu" in macOS, so META+click is used there.
|
||||
*
|
||||
* @return META_DOWN_MASK for macOS, CTRL_DOWN_MASK otherwise
|
||||
*/
|
||||
public static int ctrlDownModifier() {
|
||||
return SystemInfo.IS_MAC ? InputEvent.META_DOWN_MASK : InputEvent.CTRL_DOWN_MASK;
|
||||
}
|
||||
}
|
@ -10,9 +10,6 @@ import com.apple.eawt.ApplicationEvent;
|
||||
*/
|
||||
public class LuytenOsx extends Luyten {
|
||||
public static void main(String[] args) {
|
||||
// Set a flag that says we are running in OS X
|
||||
System.setProperty("us.deathmarine.luyten.Luyten.running_in_osx", "true");
|
||||
|
||||
// Add an adapter as the handler to a new instance of the application
|
||||
// class
|
||||
@SuppressWarnings("deprecation")
|
||||
|
@ -249,7 +249,7 @@ public class MainMenuBar extends JMenuBar {
|
||||
|
||||
// Only add the exit command for non-OS X. OS X handles its close
|
||||
// automatically
|
||||
if (!("true".equals(System.getProperty("us.deathmarine.luyten.Luyten.running_in_osx")))) {
|
||||
if (!Boolean.getBoolean("apple.laf.useScreenMenuBar")) {
|
||||
menuItem = new JMenuItem("Exit");
|
||||
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, ActionEvent.ALT_MASK));
|
||||
menuItem.addActionListener(new ActionListener() {
|
||||
|
@ -153,7 +153,7 @@ public class Model extends JSplitPane {
|
||||
}
|
||||
});
|
||||
|
||||
KeyStroke sfuncF4 = KeyStroke.getKeyStroke(KeyEvent.VK_F4, InputEvent.CTRL_DOWN_MASK, false);
|
||||
KeyStroke sfuncF4 = KeyStroke.getKeyStroke(KeyEvent.VK_F4, Keymap.ctrlDownModifier(), false);
|
||||
mainWindow.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(sfuncF4, "CloseTab");
|
||||
|
||||
mainWindow.getRootPane().getActionMap().put("CloseTab", new AbstractAction() {
|
||||
|
@ -193,7 +193,7 @@ public class OpenFile implements SyntaxConstants {
|
||||
}
|
||||
|
||||
textArea.setHyperlinksEnabled(true);
|
||||
textArea.setLinkScanningMask(InputEvent.CTRL_DOWN_MASK);
|
||||
textArea.setLinkScanningMask(Keymap.ctrlDownModifier());
|
||||
|
||||
textArea.setLinkGenerator(new LinkGenerator() {
|
||||
@Override
|
||||
@ -240,7 +240,7 @@ public class OpenFile implements SyntaxConstants {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((e.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) != 0) {
|
||||
if ((e.getModifiersEx() & Keymap.ctrlDownModifier()) != 0) {
|
||||
Font font = textArea.getFont();
|
||||
int size = font.getSize();
|
||||
if (e.getWheelRotation() > 0) {
|
||||
@ -410,7 +410,7 @@ public class OpenFile implements SyntaxConstants {
|
||||
public synchronized void mouseMoved(MouseEvent e) {
|
||||
String linkText = null;
|
||||
boolean isLinkLabel = false;
|
||||
boolean isCtrlDown = (e.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) != 0;
|
||||
boolean isCtrlDown = (e.getModifiersEx() & Keymap.ctrlDownModifier()) != 0;
|
||||
if (isCtrlDown) {
|
||||
linkText = createLinkLabel(e);
|
||||
isLinkLabel = linkText != null;
|
||||
|
10
src/us/deathmarine/luyten/SystemInfo.java
Normal file
10
src/us/deathmarine/luyten/SystemInfo.java
Normal file
@ -0,0 +1,10 @@
|
||||
package us.deathmarine.luyten;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class SystemInfo {
|
||||
private static final String OS_NAME = System.getProperty("os.name");
|
||||
private static final String OS_NAME_LOWER = OS_NAME.toLowerCase(Locale.US);
|
||||
|
||||
public static boolean IS_MAC = OS_NAME_LOWER.startsWith("mac");
|
||||
}
|
Loading…
Reference in New Issue
Block a user