From 906f129901a576936cec4eadd043500b7bd9ed19 Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Thu, 10 Oct 2024 17:39:03 +0200 Subject: [PATCH] Add HOME button to reset camera position --- .../ocelot/desktop/ui/widget/WorkspaceView.scala | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala b/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala index 7556dc2..c2469e0 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala @@ -238,10 +238,7 @@ class WorkspaceView extends Widget with Persistable with DragHandler with ClickH eventHandlers += { case ev@DragEvent(DragEvent.State.Drag, MouseEvent.Button.Left | MouseEvent.Button.Middle, _) => - cameraOffset += ev.delta - for (node <- nodes) - node.position += ev.delta - windowPool.movePinnedWindows(ev.delta) + moveCameraOffset(ev.delta) case ClickEvent(MouseEvent.Button.Left | MouseEvent.Button.Right, pos) => if (nodeSelector.isClosed) { @@ -269,6 +266,16 @@ class WorkspaceView extends Widget with Persistable with DragHandler with ClickH case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_F4, _) => profilerWindow.open() + + case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_HOME, _) => + moveCameraOffset(-cameraOffset) + } + + private def moveCameraOffset(delta: Vector2D): Unit = { + cameraOffset += delta + for (node <- nodes) + node.position += delta + windowPool.movePinnedWindows(delta) } private def openSelector(p: Vector2D): Unit = {