From b4af2abfbb4f585a2a43f09d9da34131143d7d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Fri, 16 Dec 2022 22:19:57 +0100 Subject: [PATCH] Move with keyboard --- .../decompiler/flash/gui/ImagePanel.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java index af48ace75..644da9375 100644 --- a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java @@ -76,6 +76,7 @@ import java.awt.Transparency; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.InputEvent; +import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -435,6 +436,7 @@ public final class ImagePanel extends JPanel implements MediaDisplay { calculateFreeTransform(); hideMouseSelection(); redraw(); + iconPanel.requestFocusInWindow(); } private void centerImage() { @@ -633,6 +635,33 @@ public final class ImagePanel extends JPanel implements MediaDisplay { return false; } }); + + addKeyListener(new KeyAdapter(){ + + private void move(int x, int y) { + Matrix matrix = new Matrix(); + matrix.translate(x * SWF.unitDivisor, y * SWF.unitDivisor); + applyTransformMatrix(matrix); + } + + @Override + public void keyPressed(KeyEvent e) { + if (freeTransformDepth > -1) { + if (e.getKeyCode() == KeyEvent.VK_LEFT) { + move(-1, 0); + } + if (e.getKeyCode() == KeyEvent.VK_RIGHT) { + move(1, 0); + } + if (e.getKeyCode() == KeyEvent.VK_UP) { + move(0, -1); + } + if (e.getKeyCode() == KeyEvent.VK_DOWN) { + move(0, 1); + } + } + } + }); addComponentListener(new ComponentAdapter() { @Override