From 21c781b162ab649e10c076343cec9dd0f8736deb Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Fri, 8 May 2020 22:47:06 +0300 Subject: Fix slider scrolling with keys --- .../cotton/gui/widget/WAbstractSlider.java | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'src/main/java/io') diff --git a/src/main/java/io/github/cottonmc/cotton/gui/widget/WAbstractSlider.java b/src/main/java/io/github/cottonmc/cotton/gui/widget/WAbstractSlider.java index 8f93221..3367b1d 100644 --- a/src/main/java/io/github/cottonmc/cotton/gui/widget/WAbstractSlider.java +++ b/src/main/java/io/github/cottonmc/cotton/gui/widget/WAbstractSlider.java @@ -336,28 +336,38 @@ public abstract class WAbstractSlider extends WWidget { } } - private static boolean isDecreasingKey(int ch) { - return ch == GLFW.GLFW_KEY_LEFT || ch == GLFW.GLFW_KEY_DOWN; + private boolean isDecreasingKey(int ch) { + return direction.isInverted() + ? (ch == GLFW.GLFW_KEY_RIGHT || ch == GLFW.GLFW_KEY_UP) + : (ch == GLFW.GLFW_KEY_LEFT || ch == GLFW.GLFW_KEY_DOWN); } - private static boolean isIncreasingKey(int ch) { - return ch == GLFW.GLFW_KEY_RIGHT || ch == GLFW.GLFW_KEY_UP; + private boolean isIncreasingKey(int ch) { + return direction.isInverted() + ? (ch == GLFW.GLFW_KEY_LEFT || ch == GLFW.GLFW_KEY_DOWN) + : (ch == GLFW.GLFW_KEY_RIGHT || ch == GLFW.GLFW_KEY_UP); } public enum Direction { - UP(Axis.VERTICAL), - DOWN(Axis.VERTICAL), - LEFT(Axis.HORIZONTAL), - RIGHT(Axis.HORIZONTAL); + UP(Axis.VERTICAL, false), + DOWN(Axis.VERTICAL, true), + LEFT(Axis.HORIZONTAL, true), + RIGHT(Axis.HORIZONTAL, false); private final Axis axis; + private final boolean inverted; - Direction(Axis axis) { + Direction(Axis axis, boolean inverted) { this.axis = axis; + this.inverted = inverted; } public Axis getAxis() { return axis; } + + public boolean isInverted() { + return inverted; + } } } -- cgit