Browse Source

Fix smooth scrolling in ScrollBar

fixes #11369
volzhs 8 years ago
parent
commit
7da0ec01c0
1 changed files with 4 additions and 4 deletions
  1. 4 4
      scene/gui/scroll_bar.cpp

+ 4 - 4
scene/gui/scroll_bar.cpp

@@ -106,9 +106,9 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
 			if (ofs < grabber_ofs) {
 
 				if (scrolling) {
-					target_scroll = target_scroll - get_page();
+					target_scroll = CLAMP(target_scroll - get_page(), get_min(), get_max() - get_page());
 				} else {
-					target_scroll = get_value() - get_page();
+					target_scroll = CLAMP(get_value() - get_page(), get_min(), get_max() - get_page());
 				}
 
 				if (smooth_scroll_enabled) {
@@ -130,9 +130,9 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) {
 				update();
 			} else {
 				if (scrolling) {
-					target_scroll = target_scroll + get_page();
+					target_scroll = CLAMP(target_scroll + get_page(), get_min(), get_max() - get_page());
 				} else {
-					target_scroll = get_value() + get_page();
+					target_scroll = CLAMP(get_value() + get_page(), get_min(), get_max() - get_page());
 				}
 
 				if (smooth_scroll_enabled) {