diff --git a/src/main/java/de/neemann/digital/fsm/gui/FSMFrame.java b/src/main/java/de/neemann/digital/fsm/gui/FSMFrame.java index 38660d3a2..268bbe0cc 100644 --- a/src/main/java/de/neemann/digital/fsm/gui/FSMFrame.java +++ b/src/main/java/de/neemann/digital/fsm/gui/FSMFrame.java @@ -348,7 +348,7 @@ public class FSMFrame extends JFrame implements ClosingWindowListener.ConfirmSav public void actionPerformed(ActionEvent e) { fsmComponent.scaleCircuit(1 / 0.9); } - }.setAccelerator("control PLUS"); + }.setAcceleratorCTRLplus("PLUS"); // enable [+] which is SHIFT+[=] on english keyboard layout fsmComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, KeyEvent.CTRL_DOWN_MASK, false), zoomIn); fsmComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.CTRL_DOWN_MASK, false), zoomIn); @@ -359,7 +359,7 @@ public class FSMFrame extends JFrame implements ClosingWindowListener.ConfirmSav public void actionPerformed(ActionEvent e) { fsmComponent.scaleCircuit(0.9); } - }.setAccelerator("control MINUS"); + }.setAcceleratorCTRLplus("MINUS"); // enable [+] which is SHIFT+[=] on english keyboard layout fsmComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, KeyEvent.CTRL_DOWN_MASK, false), zoomOut); fsmComponent.getActionMap().put(zoomOut, zoomOut); diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index 01b490f18..ad717b6b0 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -352,7 +352,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS public void actionPerformed(ActionEvent e) { circuitComponent.scaleCircuit(1 / 0.9); } - }.setAccelerator("control PLUS"); + }.setAcceleratorCTRLplus("PLUS"); // enable [+] which is SHIFT+[=] on english keyboard layout circuitComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, KeyEvent.CTRL_DOWN_MASK, false), zoomIn); circuitComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.CTRL_DOWN_MASK, false), zoomIn); @@ -363,7 +363,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS public void actionPerformed(ActionEvent e) { circuitComponent.scaleCircuit(0.9); } - }.setAccelerator("control MINUS"); + }.setAcceleratorCTRLplus("MINUS"); // enable [+] which is SHIFT+[=] on english keyboard layout circuitComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, KeyEvent.CTRL_DOWN_MASK, false), zoomOut); circuitComponent.getActionMap().put(zoomOut, zoomOut); diff --git a/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java b/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java index 0ef3e2096..aa392df38 100644 --- a/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java +++ b/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java @@ -129,13 +129,13 @@ public class GraphDialog extends JDialog implements Observer { public void actionPerformed(ActionEvent e) { graphComponent.scale(1.25f, getWidth() / 2); } - }.setAccelerator("control PLUS"); + }.setAcceleratorCTRLplus("PLUS"); ToolTipAction zoomOut = new ToolTipAction(Lang.get("menu_zoomOut"), ICON_ZOOM_OUT) { @Override public void actionPerformed(ActionEvent e) { graphComponent.scale(0.8f, getWidth() / 2); } - }.setAccelerator("control MINUS"); + }.setAcceleratorCTRLplus("MINUS"); showTable = new ToolTipAction(Lang.get("menu_showDataAsTable")) { @Override diff --git a/src/main/java/de/neemann/gui/ToolTipAction.java b/src/main/java/de/neemann/gui/ToolTipAction.java index a48eac1f9..4f389f066 100644 --- a/src/main/java/de/neemann/gui/ToolTipAction.java +++ b/src/main/java/de/neemann/gui/ToolTipAction.java @@ -100,6 +100,20 @@ public abstract class ToolTipAction extends AbstractAction { return setAccelerator(KeyStroke.getKeyStroke(key)); } + /** + * Sets an accelerator to the action + * + * @param key the accelerator key + * @return this for call chaining + */ + public ToolTipAction setAcceleratorCTRLplus(String key) { + int mask = KeyEvent.CTRL_DOWN_MASK; + if (Screen.isMac()) + mask= KeyEvent.META_DOWN_MASK; + int keyCode = KeyStroke.getKeyStroke(key).getKeyCode(); + return setAccelerator(KeyStroke.getKeyStroke(keyCode, mask)); + } + /** * Sets an accelerator to the action *