From 03d6291aafd2b05b5f4d5d75688bb61ecbe91e61 Mon Sep 17 00:00:00 2001 From: MrCdK Date: Wed, 2 Oct 2019 12:34:04 +0200 Subject: Handle scrolling correctly in Tree controls inside ScrollContainers --- scene/gui/tree.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'scene/gui') diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 2fc4be6900..50b0b12029 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -2677,11 +2677,21 @@ void Tree::_gui_input(Ref p_event) { } break; case BUTTON_WHEEL_UP: { + double prev_value = v_scroll->get_value(); v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() * b->get_factor() / 8); + if (v_scroll->get_value() != prev_value) { + accept_event(); + } + } break; case BUTTON_WHEEL_DOWN: { + double prev_value = v_scroll->get_value(); v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * b->get_factor() / 8); + if (v_scroll->get_value() != prev_value) { + accept_event(); + } + } break; } } @@ -2689,7 +2699,11 @@ void Tree::_gui_input(Ref p_event) { Ref pan_gesture = p_event; if (pan_gesture.is_valid()) { + double prev_value = v_scroll->get_value(); v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); + if (v_scroll->get_value() != prev_value) { + accept_event(); + } } } -- cgit v1.2.3