diff options
author | xander <xander@isxander.dev> | 2022-09-03 10:59:58 +0100 |
---|---|---|
committer | xander <xander@isxander.dev> | 2022-09-03 10:59:58 +0100 |
commit | 8a29f957e99c957efd11d6c279e5f97639f05d9e (patch) | |
tree | f94a9d48d8d409b526d494ad6cd593f73ba81dea /src/main/java | |
parent | 0ec15d2b53ccec94b17d9571bc7d4c437df84eae (diff) | |
download | YetAnotherConfigLib-8a29f957e99c957efd11d6c279e5f97639f05d9e.tar.gz YetAnotherConfigLib-8a29f957e99c957efd11d6c279e5f97639f05d9e.tar.bz2 YetAnotherConfigLib-8a29f957e99c957efd11d6c279e5f97639f05d9e.zip |
prevent keyboard controls if not hovered or focused
Diffstat (limited to 'src/main/java')
5 files changed, 24 insertions, 9 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java index d198c96..e0d0230 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java @@ -88,13 +88,16 @@ public class ActionController implements Controller<Consumer<YACLScreen>> { @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode != GLFW.GLFW_KEY_ENTER && keyCode != GLFW.GLFW_KEY_SPACE && keyCode != GLFW.GLFW_KEY_KP_ENTER) { + if (!focused && !hovered) { return false; } - executeAction(); + if (keyCode == GLFW.GLFW_KEY_ENTER || keyCode == GLFW.GLFW_KEY_SPACE || keyCode == GLFW.GLFW_KEY_KP_ENTER) { + executeAction(); + return true; + } - return true; + return false; } @Override diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java b/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java index ac8754f..04b2ba2 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java @@ -143,13 +143,16 @@ public class BooleanController implements Controller<Boolean> { @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode != GLFW.GLFW_KEY_ENTER && keyCode != GLFW.GLFW_KEY_SPACE && keyCode != GLFW.GLFW_KEY_KP_ENTER) { + if (!focused && !hovered) { return false; } - toggleSetting(); + if (keyCode == GLFW.GLFW_KEY_ENTER || keyCode == GLFW.GLFW_KEY_SPACE || keyCode == GLFW.GLFW_KEY_KP_ENTER) { + toggleSetting(); + return true; + } - return true; + return false; } } } diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java b/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java index af52255..5bb3caf 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java @@ -109,6 +109,9 @@ public class EnumController<T extends Enum<T>> implements Controller<T> { @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (!focused && !hovered) + return false; + switch (keyCode) { case GLFW.GLFW_KEY_LEFT, GLFW.GLFW_KEY_DOWN -> cycleValue(-1); diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java b/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java index a1c0095..106f76a 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java @@ -97,13 +97,16 @@ public class TickBoxController implements Controller<Boolean> { @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode != GLFW.GLFW_KEY_ENTER && keyCode != GLFW.GLFW_KEY_SPACE && keyCode != GLFW.GLFW_KEY_KP_ENTER) { + if (!focused && !hovered) { return false; } - toggleSetting(); + if (keyCode == GLFW.GLFW_KEY_ENTER || keyCode == GLFW.GLFW_KEY_SPACE || keyCode == GLFW.GLFW_KEY_KP_ENTER) { + toggleSetting(); + return true; + } - return true; + return false; } } } diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java index a6f046a..b587258 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java @@ -101,6 +101,9 @@ public class SliderControllerElement extends ControllerWidget<ISliderController< @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (!focused && !hovered) + return false; + switch (keyCode) { case GLFW.GLFW_KEY_LEFT, GLFW.GLFW_KEY_DOWN -> incrementValue(-1); case GLFW.GLFW_KEY_RIGHT, GLFW.GLFW_KEY_UP -> incrementValue(1); |