diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index f333dc2b..8f0c7a38 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3689,5 +3689,25 @@ https://github.com/bancika/diy-layout-creator/releases + + + 4 + 21 + 4 + + 2022-02-27 00:00:00.000 CET + + + + BUG_FIX + Fixed the issue with stereo phono jack rendering issues when rotated + + + IMPROVEMENT + Improved precision of zooming in and out when nothing is selected + + + 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 5fabc668..584582bc 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/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml b/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml index e582fa49..bb7aad92 100644 --- a/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml +++ b/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml @@ -37,13 +37,21 @@ nbenitezl_AT_gmail.com + + +
    +
  • [Bug Fix] Fixed the issue with the app going back to .diylc user directory for configuration storage. Only diylc directory is used going forward, please copy config.xml from .diylc to diylc if you are missing any configuration
  • +
+
+ https://github.com/bancika/diy-layout-creator/releases/tag/v4.21.3 +
  • [Bug Fix] Fixed broken Linux app package
- https://github.com/bancika/diy-layout-creator/releases/tag/v4.21.1 + https://github.com/bancika/diy-layout-creator/releases/tag/v4.21.2
diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 5fabc668..584582bc 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 03dfa4a8..22158222 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/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index 6f663ae2..8d702fc3 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 @@ -469,7 +469,10 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } public void zoom(int direction) { - Point mousePos = canvasPanel.getMousePosition(true); + Point mousePosBefore = canvasPanel.getMousePosition(true); + Point locationBefore = canvasPanel.getLocation(); + int relativeX = (int) (mousePosBefore.getX() + locationBefore.getX()); + int relativeY = (int) (mousePosBefore.getY() + locationBefore.getY()); // change zoom level double oldZoom = plugInPort.getZoomLevel(); @@ -495,24 +498,25 @@ 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 - Point desiredPos = new Point((int) (1d * mousePos.x / oldZoom * newZoom), - (int) (1d * mousePos.y / oldZoom * newZoom)); - int dx = desiredPos.x - mousePos.x; - int dy = desiredPos.y - mousePos.y; - horizontal.setValue(horizontal.getValue() + dx); - vertical.setValue(vertical.getValue() + dy); - } else { - // center to selection - horizontal.setValue((int) (selectionBounds.getX() + selectionBounds.getWidth() / 2 - - visibleRect.getWidth() / 2)); - vertical.setValue((int) (selectionBounds.getY() + selectionBounds.getHeight() / 2 - - visibleRect.getHeight() / 2)); + if (mousePosBefore == null) { + mousePosBefore = new Point((int)visibleRect.getCenterX(), (int)visibleRect.getCenterY()); } + + if (selectionBounds == null) { + // center to cursor + Point desiredPos = new Point((int) (1d * mousePosBefore.getX() / oldZoom * newZoom), + (int) (1d * mousePosBefore.getY() / oldZoom * newZoom)); + int newHorizontalPos = (int) (desiredPos.getX() - relativeX); + int newVerticalPos = (int) (desiredPos.getY() - relativeY); + horizontal.setValue(newHorizontalPos < 0 ? 0 : newHorizontalPos); + vertical.setValue(newVerticalPos < 0 ? 0 : newVerticalPos); + } else { + // center to selection + horizontal + .setValue((int) (selectionBounds.getX() + selectionBounds.getWidth() / 2 - visibleRect.getWidth() / 2)); + vertical.setValue( + (int) (selectionBounds.getY() + selectionBounds.getHeight() / 2 - visibleRect.getHeight() / 2)); + } } private void showPopupAt(int x, int y) {