X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fslider%2Fslider-impl.cpp;h=fdbbbd9307f84040c9594112dc19ec69505ad3bc;hp=4acad77f14c31bea2789d4a20209b511ea672b1d;hb=HEAD;hpb=2a490ade1fc1a57ae0e387f80cde29ca81e67d97 diff --git a/dali-toolkit/internal/controls/slider/slider-impl.cpp b/dali-toolkit/internal/controls/slider/slider-impl.cpp index 4acad77..20b498c 100644 --- a/dali-toolkit/internal/controls/slider/slider-impl.cpp +++ b/dali-toolkit/internal/controls/slider/slider-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -862,14 +862,16 @@ float Slider::SnapToMark(float value) for(MarkList::SizeType i = 0; i < mMarks.Count(); ++i) { const Property::Value& propertyValue = mMarks[i]; - propertyValue.Get(mark); - mark = MapValuePercentage(mark); - - float dist = fabsf(mark - value); - if(dist < closestDist) + if(propertyValue.Get(mark)) { - closestDist = dist; - closestMark = mark; + mark = MapValuePercentage(mark); + + float dist = fabsf(mark - value); + if(dist < closestDist) + { + closestDist = dist; + closestMark = mark; + } } } @@ -891,22 +893,24 @@ bool Slider::MarkReached(float value, int& outIndex) current = head + (tail - head) / 2; const Property::Value& propertyValue = mMarks[current]; - propertyValue.Get(mark); - mark = MapValuePercentage(mark); - - if(fabsf(mark - value) < MARK_TOLERANCE) + if(propertyValue.Get(mark)) { - outIndex = current; - return true; - } + mark = MapValuePercentage(mark); - if(value < mark) - { - tail = current - 1; - } - else - { - head = current + 1; + if(fabsf(mark - value) < MARK_TOLERANCE) + { + outIndex = current; + return true; + } + + if(value < mark) + { + tail = current - 1; + } + else + { + head = current + 1; + } } } @@ -949,9 +953,11 @@ void Slider::SetValue(float value) { mValue = value; DisplayValue(mValue, true); - if(Self() == Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor()) + + auto accessible = GetAccessibleObject(); + if(DALI_LIKELY(accessible) && accessible->IsHighlighted()) { - GetAccessibleObject()->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE); + accessible->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE); } } @@ -1440,7 +1446,7 @@ bool Slider::SliderAccessible::SetCurrent(double current) if(current < GetMinimum() || current > GetMaximum()) return false; - auto self = Toolkit::Slider::DownCast(Self()); + auto self = Toolkit::Slider::DownCast(Self()); auto& impl = Toolkit::GetImpl(self); const float prev = self.GetProperty(Toolkit::Slider::Property::VALUE);