From 7fad87cf455d149928b915f76b93a0a2bd97ff3a Mon Sep 17 00:00:00 2001 From: yugecin Date: Mon, 27 Aug 2018 22:00:02 +0200 Subject: [PATCH] fix optionmenu always updating and rendering --- src/yugecin/opsudance/ui/OptionsOverlay.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/yugecin/opsudance/ui/OptionsOverlay.java b/src/yugecin/opsudance/ui/OptionsOverlay.java index 77e1b643..1c77b411 100644 --- a/src/yugecin/opsudance/ui/OptionsOverlay.java +++ b/src/yugecin/opsudance/ui/OptionsOverlay.java @@ -103,6 +103,7 @@ public class OptionsOverlay implements ResolutionChangedListener { private int sliderOptionStartX; private int sliderOptionLength; private boolean isAdjustingSlider; + private int unchangedSliderValue; private final HashMap> dropdownMenus; private final LinkedList> visibleDropdownMenus; @@ -283,7 +284,7 @@ public class OptionsOverlay implements ResolutionChangedListener { } public void render(Graphics g) { - if (!this.active && this.currentWidth == 0) { + if (!this.active && this.currentWidth == this.navButtonSize) { return; } @@ -653,7 +654,7 @@ public class OptionsOverlay implements ResolutionChangedListener { } public void preRenderUpdate() { - if (!this.active && this.currentWidth == 0) { + if (!this.active && this.currentWidth == this.navButtonSize) { return; } @@ -818,6 +819,7 @@ public class OptionsOverlay implements ResolutionChangedListener { if (hoverOption != null && hoverOption instanceof NumericOption) { isAdjustingSlider = sliderOptionStartX <= x && x < sliderOptionStartX + sliderOptionLength; if (isAdjustingSlider) { + unchangedSliderValue = ((NumericOption) hoverOption).val; updateSliderOption(); } } @@ -960,6 +962,11 @@ public class OptionsOverlay implements ResolutionChangedListener { } if (key == Keyboard.KEY_ESCAPE) { + if (isAdjustingSlider) { + isAdjustingSlider = false; + ((NumericOption) hoverOption).setValue(unchangedSliderValue); + //updateHoverOption(mouseX, mouseY); + } if (openDropdownMenu != null) { openDropdownMenu.keyPressed(key, c); return true;