libaurum: reset states data before update. 79/265279/1
authorWoochanlee <wc0917.lee@samsung.com>
Thu, 14 Oct 2021 01:26:06 +0000 (10:26 +0900)
committerWoochanlee <wc0917.lee@samsung.com>
Thu, 14 Oct 2021 01:26:06 +0000 (10:26 +0900)
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

libaurum/inc/Accessibility/AccessibleNode.h
libaurum/src/Accessibility/AccessibleNode.cc
libaurum/src/Impl/Accessibility/AtspiAccessibleNode.cc

index c5dc2b5854d37effbea76732f3f5743ef71fd454..81fb1c4696fa1bdc60c06e0b830510ac907f7d4d 100644 (file)
@@ -360,6 +360,12 @@ public:
      */
     void setFeatureProperty(NodeFeatureProperties prop, bool has);
 
+    /**
+     * @brief TBD
+     * @since_tizen 6.5
+     */
+    void resetFeatureProperty();
+
 protected:
     /**
      * @brief TBD
index 740354d634ad0b7b38922f618edeb0d58bc2c711..73c0cddad950fa4f1b545bd76d00b768b3af3126 100644 (file)
@@ -91,6 +91,10 @@ void AccessibleNode::setFeatureProperty(NodeFeatureProperties prop, bool has)
         mFeatureProperty &= ~static_cast<int>(prop);
 }
 
+void AccessibleNode::resetFeatureProperty()
+{
+    mFeatureProperty = 0;
+}
 
 std::string AccessibleNode::getText() const
 {
index a8f1add87485b2d4e5e00eb43c6f6c5a595afdbf..1c9b032b04c7ca33f7ec14155f887035e433d98d 100644 (file)
@@ -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);