From 6dfe36b5cde442b40208e1cebb4b2c7b2f08a4b1 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Thu, 14 Feb 2019 06:26:29 +0000 Subject: [PATCH] Change: Make volume slider widget capture mouse when clicked. This makes the slider continue to respond even when mouse cursor is no longer over the widget. --- src/music_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/music_gui.cpp b/src/music_gui.cpp index 87a073b0a7..885647427f 100644 --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -799,7 +799,7 @@ struct MusicWindow : public Window { byte *vol = (widget == WID_M_MUSIC_VOL) ? &_settings_client.music.music_vol : &_settings_client.music.effect_vol; - byte new_vol = x * 127 / this->GetWidget(widget)->current_x; + byte new_vol = Clamp(x * 127 / (int)this->GetWidget(widget)->current_x, 0, 127); if (_current_text_dir == TD_RTL) new_vol = 127 - new_vol; /* Clamp to make sure min and max are properly settable */ if (new_vol > 124) new_vol = 127; @@ -810,7 +810,7 @@ struct MusicWindow : public Window { this->SetDirty(); } - _left_button_clicked = false; + if (click_count > 0) this->mouse_capture_widget = widget; break; }