aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Common')
-rw-r--r--Minecraft.Client/Common/UI/UIControl_Slider.cpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/Minecraft.Client/Common/UI/UIControl_Slider.cpp b/Minecraft.Client/Common/UI/UIControl_Slider.cpp
index 2d56a29c..c9b773a7 100644
--- a/Minecraft.Client/Common/UI/UIControl_Slider.cpp
+++ b/Minecraft.Client/Common/UI/UIControl_Slider.cpp
@@ -66,12 +66,44 @@ void UIControl_Slider::init(UIString label, int id, int min, int max, int curren
#endif
}
+bool IsUsingKeyboardMouse()
+{
+#ifdef _WINDOWS64
+
+ if (g_KBMInput.IsKBMActive()) return true;
+
+ return g_KBMInput.HasAnyInput();
+#else
+ return false;
+#endif
+}
+
void UIControl_Slider::handleSliderMove(int newValue)
{
if (m_current!=newValue)
{
- ui.PlayUISFX(eSFX_Scroll);
- m_current = newValue;
+ int valueCount = 1;
+ if (!m_allPossibleLabels.empty()) {
+ valueCount = static_cast<int>(m_allPossibleLabels.size());
+ }
+ else {
+ long long range = static_cast<long long>(m_max) - static_cast<long long>(m_min) + 1;
+ if (range <= 0) range = 1;
+ valueCount = static_cast<int>(range);
+ }
+
+ if (IsUsingKeyboardMouse() == true) {
+ if (newValue % 10 == 0) {
+ ui.PlayUISFX(eSFX_Scroll);
+ m_current = newValue;
+ } else if (valueCount <= 20) {
+ ui.PlayUISFX(eSFX_Scroll);
+ m_current = newValue;
+ }
+ } else {
+ ui.PlayUISFX(eSFX_Scroll);
+ m_current = newValue;
+ }
if(newValue < m_allPossibleLabels.size())
{