浏览代码

Fix for inverted VSlider

VSlider would get set at the inverted position when receiving a mouse click
Dragging the slider worked correct
Ralf Hölzemer 11 年之前
父节点
当前提交
5cd174586a
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      scene/gui/slider.cpp

+ 4 - 1
scene/gui/slider.cpp

@@ -49,7 +49,10 @@ void Slider::_input_event(InputEvent p_event) {
 			if (mb.pressed)	{
 			if (mb.pressed)	{
 				grab.pos=orientation==VERTICAL?mb.y:mb.x;
 				grab.pos=orientation==VERTICAL?mb.y:mb.x;
 				double max = orientation==VERTICAL ? get_size().height : get_size().width ;
 				double max = orientation==VERTICAL ? get_size().height : get_size().width ;
-				set_val( ( ( (double)grab.pos / max) * ( get_max() - get_min() ) ) + get_min() ); 
+				if (orientation==VERTICAL)
+					set_val( ( ( -(double)grab.pos / max) * ( get_max() - get_min() ) ) + get_max() );
+				else
+					set_val( ( ( (double)grab.pos / max) * ( get_max() - get_min() ) ) + get_min() );
 				grab.active=true;
 				grab.active=true;
 				grab.uvalue=get_unit_value();
 				grab.uvalue=get_unit_value();
 			} else {
 			} else {