mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-22 11:56:49 +01:00
Fix scrolling behaviour with low page value
(cherry picked from commit 1608bea18809dcb4e744ee936f8de8f5660adfbe)
This commit is contained in:
parent
df406d2027
commit
14c218d23a
@ -54,12 +54,14 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
|
|||||||
accept_event();
|
accept_event();
|
||||||
|
|
||||||
if (b->get_button_index() == BUTTON_WHEEL_DOWN && b->is_pressed()) {
|
if (b->get_button_index() == BUTTON_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();
|
accept_event();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b->get_button_index() == BUTTON_WHEEL_UP && b->is_pressed()) {
|
if (b->get_button_index() == BUTTON_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();
|
accept_event();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,7 +100,8 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
|
|||||||
if (scrolling) {
|
if (scrolling) {
|
||||||
target_scroll = CLAMP(target_scroll - get_page(), get_min(), get_max() - get_page());
|
target_scroll = CLAMP(target_scroll - get_page(), get_min(), get_max() - get_page());
|
||||||
} else {
|
} 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) {
|
if (smooth_scroll_enabled) {
|
||||||
@ -121,7 +124,8 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
|
|||||||
if (scrolling) {
|
if (scrolling) {
|
||||||
target_scroll = CLAMP(target_scroll + get_page(), get_min(), get_max() - get_page());
|
target_scroll = CLAMP(target_scroll + get_page(), get_min(), get_max() - get_page());
|
||||||
} else {
|
} 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) {
|
if (smooth_scroll_enabled) {
|
||||||
|
Loading…
Reference in New Issue
Block a user