summaryrefslogtreecommitdiffstats
path: root/scene/gui
diff options
context:
space:
mode:
authorHenrique L Alves <henriquelalves@gmail.com>2017-12-15 09:52:28 -0200
committerHenrique L Alves <henriquelalves@gmail.com>2017-12-15 09:52:34 -0200
commitbaf11613446110ee6c734c29d9fe5181655449d3 (patch)
tree69827b0c58c87ca139677fe27a0ac62ae7e56585 /scene/gui
parentb872439eefb7d54a572ace3a57fea01787c46952 (diff)
downloadredot-engine-baf11613446110ee6c734c29d9fe5181655449d3.tar.gz
Fixes slider node tick offset
Fixes wrong tick offset on slider nodes - they now match with the corresponding 'grabber' positions. Fixes issue #14637
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/slider.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp
index 665ae8b6dd..70b8616af1 100644
--- a/scene/gui/slider.cpp
+++ b/scene/gui/slider.cpp
@@ -184,10 +184,10 @@ void Slider::_notification(int p_what) {
focus->draw(ci,Rect2i(Point2i(),Size2i(style->get_minimum_size().width+style->get_center_size().width,size.height)));
*/
if (ticks > 1) {
- int tickarea = size.height - tick->get_height();
+ int grabber_offset = (grabber->get_size().height / 2 - tick->get_height() / 2);
for (int i = 0; i < ticks; i++) {
if (!ticks_on_borders && (i == 0 || i + 1 == ticks)) continue;
- int ofs = i * tickarea / (ticks - 1);
+ int ofs = (i * areasize / (ticks - 1)) + grabber_offset;
tick->draw(ci, Point2i((size.width - widget_width) / 2, ofs));
}
}
@@ -205,10 +205,10 @@ void Slider::_notification(int p_what) {
*/
if (ticks > 1) {
- int tickarea = size.width - tick->get_width();
+ int grabber_offset = (grabber->get_size().width / 2 - tick->get_width() / 2);
for (int i = 0; i < ticks; i++) {
if ((!ticks_on_borders) && ((i == 0) || ((i + 1) == ticks))) continue;
- int ofs = i * tickarea / (ticks - 1);
+ int ofs = (i * areasize / (ticks - 1)) + grabber_offset;
tick->draw(ci, Point2i(ofs, (size.height - widget_height) / 2));
}
}