Browse Source

Merge pull request #7376 from volzhs/scroll-horizontal

Scroll horizontally with mouse wheel when horizontal enabled only
Rémi Verschelde 8 years ago
parent
commit
1a2a57e2ee
1 changed files with 14 additions and 6 deletions
  1. 14 6
      scene/gui/scroll_container.cpp

+ 14 - 6
scene/gui/scroll_container.cpp

@@ -88,14 +88,22 @@ void ScrollContainer::_input_event(const InputEvent& p_input_event) {
 
 			const InputEventMouseButton &mb=p_input_event.mouse_button;
 
-			if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed && v_scroll->is_visible()) {
-
-				v_scroll->set_val( v_scroll->get_val()-v_scroll->get_page()/8 );
+			if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) {
+				if (h_scroll->is_visible() && !v_scroll->is_visible()){
+					// only horizontal is enabled, scroll horizontally
+					h_scroll->set_val( h_scroll->get_val()-h_scroll->get_page()/8 );
+				} else if (v_scroll->is_visible()) {
+					v_scroll->set_val( v_scroll->get_val()-v_scroll->get_page()/8 );
+				}
 			}
 
-			if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed && v_scroll->is_visible()) {
-
-				v_scroll->set_val( v_scroll->get_val()+v_scroll->get_page()/8 );
+			if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) {
+				if (h_scroll->is_visible() && !v_scroll->is_visible()){
+					// only horizontal is enabled, scroll horizontally
+					h_scroll->set_val( h_scroll->get_val()+h_scroll->get_page()/8 );
+				} else if (v_scroll->is_visible()) {
+					v_scroll->set_val( v_scroll->get_val()+v_scroll->get_page()/8 );
+				}
 			}
 
 			if(!OS::get_singleton()->has_touchscreen_ui_hint())