From: Seoyeon Kim Date: Mon, 22 Mar 2021 00:54:23 +0000 (+0000) Subject: Merge "Fix ClearHighlight() for custom highlight frames" into devel/master X-Git-Tag: dali_2.0.19~9 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=396e6317556d73a06f49b0e26aac8fd6c1866ec2;hp=fa290a9257bce2f6be5fc14b32ab2e5bca18da09 Merge "Fix ClearHighlight() for custom highlight frames" into devel/master --- diff --git a/dali-toolkit/devel-api/controls/accessible-impl.cpp b/dali-toolkit/devel-api/controls/accessible-impl.cpp index f986bd4..be4735b 100644 --- a/dali-toolkit/devel-api/controls/accessible-impl.cpp +++ b/dali-toolkit/devel-api/controls/accessible-impl.cpp @@ -291,6 +291,9 @@ bool AccessibleImpl::GrabHighlight() highlight.SetProperty(Actor::Property::POSITION_Z, 1.0f); highlight.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f)); + // Remember the highlight actor, so that when the default is changed with + // SetHighlightActor(), the currently displayed highlight can still be cleared. + currentHighlightActor = highlight; EnsureSelfVisible(); self.Add(highlight); SetCurrentlyHighlightedActor(self); @@ -305,7 +308,8 @@ bool AccessibleImpl::ClearHighlight() return false; if(GetCurrentlyHighlightedActor() == self) { - self.Remove(GetHighlightActor()); + self.Remove(currentHighlightActor.GetHandle()); + currentHighlightActor = {}; SetCurrentlyHighlightedActor({}); EmitHighlighted(false); return true; diff --git a/dali-toolkit/devel-api/controls/accessible-impl.h b/dali-toolkit/devel-api/controls/accessible-impl.h index feffe75..ff31c1e 100644 --- a/dali-toolkit/devel-api/controls/accessible-impl.h +++ b/dali-toolkit/devel-api/controls/accessible-impl.h @@ -19,6 +19,7 @@ // EXTERNAL INCLUDES #include #include +#include // INTERNAL INCLUDES #include @@ -46,6 +47,7 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc public virtual Dali::Accessibility::Action { Dali::Actor self; + Dali::WeakHandle currentHighlightActor; bool modal = false, root = false; AccessibleImpl(Dali::Actor self, Dali::Accessibility::Role role, bool modal = false);