diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index f6e45d5b..03aac6b5 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3280,11 +3280,23 @@ NEW_FEATURE - macOS: added pinch zooming functionality + Added pinch zooming functionality for compatible devices (tested on Mac and Win laptops) IMPROVEMENT - macOS: added meta +/- (minus and equal keys) keyboard shortcuts for zooming + macOS: added meta +/- keyboard shortcuts for zooming + + + IMPROVEMENT + macOS: two finger click shows the popup menu without deselecting a selected component + + + IMPROVEMENT + Apply context menu rotation and mirroring to Trimmer potentiometers + + + IMPROVEMENT + Apply context menu rotation and mirroring to SMD components https://github.com/bancika/diy-layout-creator/releases diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index b9185f38..6fea02d4 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 459b2fbf..6fea02d4 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index e2b6ddf8..49c4f5c0 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index 2aa83a37..4556a48e 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -340,7 +340,7 @@ public class MainFrame extends JFrame implements ISwingUI { rightPanel.add(component); break; case SwingConstants.CENTER: - centerPanel.add(component, BorderLayout.CENTER); + centerPanel.add(component); break; default: throw new BadPositionException(); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java index 2417e0eb..7b1845ae 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java @@ -139,10 +139,14 @@ public class CanvasPanel extends JComponent implements Autoscroll { getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.CTRL_DOWN_MASK), "zoomIn"); + getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) + .put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.CTRL_DOWN_MASK), "zoomIn"); getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, KeyEvent.CTRL_DOWN_MASK), "zoomOut"); getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) - .put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.META_DOWN_MASK), "zoomIn"); + .put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.META_DOWN_MASK), "zoomIn"); + getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) + .put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.META_DOWN_MASK), "zoomIn"); getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, KeyEvent.META_DOWN_MASK), "zoomIn"); getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index e6a08e6d..8e131608 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -258,9 +258,12 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public void mouseClicked(MouseEvent e) { if (scrollPane.isMouseScrollMode() || e.getButton() == MouseEvent.BUTTON2) return; + + // do not pass isMetaDown on mac when button3 (two finger click) is pressed + boolean ctrlDown = Utils.isMac() ? (e.getButton() == MouseEvent.BUTTON3 ? false : e.isMetaDown()): e.isControlDown(); + plugInPort.mouseClicked(e.getPoint(), e.getButton(), - Utils.isMac() ? e.isMetaDown() : e.isControlDown(), e.isShiftDown(), e.isAltDown(), - e.getClickCount()); + ctrlDown, e.isShiftDown(), e.isAltDown(), e.getClickCount()); } @Override @@ -466,7 +469,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } public void zoom(int direction) { - Point mousePos = canvasPanel.getMousePosition(true); + Point mousePos = canvasPanel.getMousePosition(true); // change zoom level double oldZoom = plugInPort.getZoomLevel(); @@ -491,6 +494,9 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { JScrollBar horizontal = scrollPane.getHorizontalScrollBar(); JScrollBar vertical = scrollPane.getVerticalScrollBar(); + + if (mousePos == null) + mousePos = new Point((int)visibleRect.getCenterX(), (int)visibleRect.getCenterY()); if (selectionBounds == null) { // center to cursor