@@ -455,13 +455,24 @@ void Slider::setPercent(int percent)
455
455
{
456
456
percent = 0 ;
457
457
}
458
- _percent = percent;
459
- float res = 1.0 * percent / _maxPercent;
458
+
459
+ // Only send event if value has changed
460
+ if (_percent != percent)
461
+ {
462
+ _percent = percent;
463
+ updateVisualSlider ();
464
+ percentChangedEvent (EventType::ON_PERCENTAGE_CHANGED);
465
+ }
466
+ }
467
+
468
+ void Slider::updateVisualSlider ()
469
+ {
470
+ float res = 1.0 * _percent / _maxPercent;
460
471
float dis = _barLength * res;
461
472
_slidBallRenderer->setPosition (dis, _contentSize.height / 2 .0f );
462
473
if (_scale9Enabled)
463
474
{
464
- _progressBarRenderer->setPreferredSize (Size (dis,_contentSize.height ));
475
+ _progressBarRenderer->setPreferredSize (Size (dis, _contentSize.height ));
465
476
}
466
477
else
467
478
{
@@ -498,13 +509,11 @@ void Slider::onTouchMoved(Touch *touch, Event* /*unusedEvent*/)
498
509
{
499
510
_touchMovePosition = touch->getLocation ();
500
511
setPercent (getPercentWithBallPos (_touchMovePosition));
501
- percentChangedEvent (EventType::ON_PERCENTAGE_CHANGED);
502
512
}
503
513
504
514
void Slider::onTouchEnded (Touch *touch, Event *unusedEvent)
505
515
{
506
516
Widget::onTouchEnded (touch, unusedEvent);
507
- percentChangedEvent (EventType::ON_PERCENTAGE_CHANGED);
508
517
percentChangedEvent (EventType::ON_SLIDEBALL_UP);
509
518
}
510
519
@@ -624,7 +633,7 @@ void Slider::barRendererScaleChangedWithSize()
624
633
}
625
634
}
626
635
_barRenderer->setPosition (_contentSize.width / 2 .0f , _contentSize.height / 2 .0f );
627
- setPercent (_percent );
636
+ updateVisualSlider ( );
628
637
}
629
638
630
639
void Slider::progressBarRendererScaleChangedWithSize ()
@@ -666,7 +675,7 @@ void Slider::progressBarRendererScaleChangedWithSize()
666
675
}
667
676
}
668
677
_progressBarRenderer->setPosition (0 .0f , _contentSize.height / 2 .0f );
669
- setPercent (_percent );
678
+ updateVisualSlider ( );
670
679
}
671
680
672
681
void Slider::onPressStateChangedToNormal ()
0 commit comments