From 0f2de482cf23bb9024bd2f2572ea42d1e00417b4 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Fri, 27 Jan 2017 21:05:29 +0100
Subject: [PATCH] Update KeyHandler for KeyMapper and focus issue then using
 the volume slider

---
 .../tobias/playpad/action/mapper/listener/KeyboardHandler.java | 3 ++-
 .../layout/desktop/DesktopMenuToolbarViewController.java       | 2 ++
 .../tobias/playpad/viewcontroller/main/MainViewController.java | 3 +++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/PlayWall/src/de/tobias/playpad/action/mapper/listener/KeyboardHandler.java b/PlayWall/src/de/tobias/playpad/action/mapper/listener/KeyboardHandler.java
index 000a86eb..bff5ffee 100644
--- a/PlayWall/src/de/tobias/playpad/action/mapper/listener/KeyboardHandler.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/listener/KeyboardHandler.java
@@ -12,6 +12,7 @@ import javafx.event.EventHandler;
 import javafx.scene.Scene;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
+import javafx.scene.layout.VBox;
 
 public class KeyboardHandler implements EventHandler<KeyEvent> {
 
@@ -28,7 +29,7 @@ public class KeyboardHandler implements EventHandler<KeyEvent> {
 	// KeyType ist nicht unterstützt.
 	@Override
 	public void handle(KeyEvent event) {
-		if (event.getTarget() instanceof Scene) {
+		if (event.getTarget() == mainViewController.getParent()) {
 			if (!event.isShortcutDown()) {
 				KeyCode code = null;
 				InputType type = null;
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
index d903d117..eed8a929 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
@@ -224,6 +224,8 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 		});
 
 		iconHbox.getChildren().add(editButtons);
+
+		volumeSlider.focusedProperty().addListener(i -> mainViewController.getParent().requestFocus());
 	}
 
 	// Desktop Edit Mode Change Listener --> Update Button
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
index 797e8196..2070939a 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
@@ -202,6 +202,9 @@ public class MainViewController extends NVC implements IMainViewController, Noti
 		this.midiHandler = new MidiHandler(midi, this, project);
 		this.midi.setListener(midiHandler);
 		this.keyboardHandler = new KeyboardHandler(project, this);
+
+		// Request Focus for key listener
+		getParent().requestFocus();
 	}
 
 	private void initMainLayout() {
-- 
GitLab