From: Woochanlee Date: Thu, 14 Oct 2021 01:26:06 +0000 (+0900) Subject: libaurum: reset states data before update. X-Git-Tag: submit/tizen/20211102.023704~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eb0a0278acb873dd6ed723c68a07a06951f95e74;p=platform%2Fcore%2Fuifw%2Faurum.git libaurum: reset states data before update. Aurum managed state with bit operation for each state. But the state is not updated, if the exist state is changed. So i fixed it as reset bit before state update. Change-Id: I7ecf8b416a80baa7cd099b221c42b509267f87b6 --- diff --git a/libaurum/inc/Accessibility/AccessibleNode.h b/libaurum/inc/Accessibility/AccessibleNode.h index c5dc2b5..81fb1c4 100644 --- a/libaurum/inc/Accessibility/AccessibleNode.h +++ b/libaurum/inc/Accessibility/AccessibleNode.h @@ -360,6 +360,12 @@ public: */ void setFeatureProperty(NodeFeatureProperties prop, bool has); + /** + * @brief TBD + * @since_tizen 6.5 + */ + void resetFeatureProperty(); + protected: /** * @brief TBD diff --git a/libaurum/src/Accessibility/AccessibleNode.cc b/libaurum/src/Accessibility/AccessibleNode.cc index 740354d..73c0cdd 100644 --- a/libaurum/src/Accessibility/AccessibleNode.cc +++ b/libaurum/src/Accessibility/AccessibleNode.cc @@ -91,6 +91,10 @@ void AccessibleNode::setFeatureProperty(NodeFeatureProperties prop, bool has) mFeatureProperty &= ~static_cast(prop); } +void AccessibleNode::resetFeatureProperty() +{ + mFeatureProperty = 0; +} std::string AccessibleNode::getText() const { diff --git a/libaurum/src/Impl/Accessibility/AtspiAccessibleNode.cc b/libaurum/src/Impl/Accessibility/AtspiAccessibleNode.cc index a8f1add..1c9b032 100644 --- a/libaurum/src/Impl/Accessibility/AtspiAccessibleNode.cc +++ b/libaurum/src/Impl/Accessibility/AtspiAccessibleNode.cc @@ -161,8 +161,9 @@ void AtspiAccessibleNode::updateAttributes() void AtspiAccessibleNode::updateStates() { - AtspiWrapper::Atspi_accessible_clear_cache(mNode); + resetFeatureProperty(); + AtspiWrapper::Atspi_accessible_clear_cache(mNode); AtspiStateSet *st = AtspiWrapper::Atspi_accessible_get_state_set(mNode); if (st) { GArray *states = AtspiWrapper::Atspi_state_set_get_states(st);