Skip to content

Commit

Permalink
Merge pull request godotengine#67910 from pkowal1982/scroll_bar
Browse files Browse the repository at this point in the history
Fix scrolling behaviour with zero/low page value
  • Loading branch information
akien-mga committed Mar 8, 2023
2 parents dac2d8f + 1608bea commit 677cba3
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions scene/gui/scroll_bar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,14 @@ void ScrollBar::gui_input(const Ref<InputEvent> &p_event) {
accept_event();

if (b->get_button_index() == MouseButton::WHEEL_DOWN && b->is_pressed()) {
set_value(get_value() + get_page() / 4.0);
double change = get_page() != 0.0 ? get_page() / 4.0 : (get_max() - get_min()) / 16.0;
set_value(get_value() + MAX(change, get_step()));
accept_event();
}

if (b->get_button_index() == MouseButton::WHEEL_UP && b->is_pressed()) {
set_value(get_value() - get_page() / 4.0);
double change = get_page() != 0.0 ? get_page() / 4.0 : (get_max() - get_min()) / 16.0;
set_value(get_value() - MAX(change, get_step()));
accept_event();
}

Expand Down Expand Up @@ -99,7 +101,8 @@ void ScrollBar::gui_input(const Ref<InputEvent> &p_event) {
if (scrolling) {
target_scroll = CLAMP(target_scroll - get_page(), get_min(), get_max() - get_page());
} else {
target_scroll = CLAMP(get_value() - get_page(), get_min(), get_max() - get_page());
double change = get_page() != 0.0 ? get_page() : (get_max() - get_min()) / 16.0;
target_scroll = CLAMP(get_value() - change, get_min(), get_max() - get_page());
}

if (smooth_scroll_enabled) {
Expand All @@ -122,7 +125,8 @@ void ScrollBar::gui_input(const Ref<InputEvent> &p_event) {
if (scrolling) {
target_scroll = CLAMP(target_scroll + get_page(), get_min(), get_max() - get_page());
} else {
target_scroll = CLAMP(get_value() + get_page(), get_min(), get_max() - get_page());
double change = get_page() != 0.0 ? get_page() : (get_max() - get_min()) / 16.0;
target_scroll = CLAMP(get_value() + change, get_min(), get_max() - get_page());
}

if (smooth_scroll_enabled) {
Expand Down

0 comments on commit 677cba3

Please sign in to comment.