[ATSPI] Blocking unwanted emission of "MoveOuted" signal
[platform/core/uifw/dali-adaptor.git] / dali / internal / accessibility / bridge / bridge-object.cpp
index e91f2e8..8ac1569 100644 (file)
@@ -111,11 +111,11 @@ void BridgeObject::Emit(Accessible* obj, Dali::Accessibility::ObjectPropertyChan
   }
 }
 
-void BridgeObject::Emit(Accessible* obj, WindowEvent we, unsigned int detail1)
+void BridgeObject::Emit(Accessible* obj, WindowEvent event, unsigned int detail)
 {
   if(!IsUp()) return;
   const char* name = nullptr;
-  switch(we)
+  switch(event)
   {
     case WindowEvent::PROPERTY_CHANGE:
     {
@@ -226,14 +226,14 @@ void BridgeObject::Emit(Accessible* obj, WindowEvent we, unsigned int detail1)
       AtspiDbusInterfaceEventWindow,
       name,
       "",
-      detail1,
+      detail,
       0,
       {0},
       {"", "root"});
   }
 }
 
-void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue1, int newValue2)
+void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue, int reserved)
 {
   if(!IsUp()) return;
   const char* stateName = nullptr;
@@ -487,8 +487,8 @@ void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue1,
       AtspiDbusInterfaceEventObject,
       "StateChanged",
       stateName,
-      newValue1,
-      newValue2,
+      newValue,
+      reserved,
       {0},
       {"", "root"});
   }
@@ -496,6 +496,8 @@ void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue1,
 
 void BridgeObject::EmitBoundsChanged(Accessible* obj, Dali::Rect<> rect)
 {
+  if(!allowObjectBoundsChangedEvent) return;
+
   auto        addr       = obj->GetAddress();
   const auto  prefixPath = "/org/a11y/atspi/accessible/";
   const auto  nullPath   = "/org/a11y/atspi/null";
@@ -519,7 +521,7 @@ void BridgeObject::EmitBoundsChanged(Accessible* obj, Dali::Rect<> rect)
   });
 }
 
-void BridgeObject::EmitCaretMoved(Accessible* obj, unsigned int cursorPosition)
+void BridgeObject::EmitCursorMoved(Accessible* obj, unsigned int cursorPosition)
 {
   auto        addr = obj->GetAddress();
   std::string p    = addr ? ATSPI_PREFIX_PATH + addr.GetPath() : ATSPI_NULL_PATH;
@@ -569,3 +571,18 @@ void BridgeObject::EmitTextChanged(Accessible* obj, TextChangedState state, unsi
       {"", "root"});
   }
 }
+
+void BridgeObject::EmitMovedOutOfScreen(Accessible* obj, ScreenRelativeMoveType type)
+{
+  auto        addr = obj->GetAddress();
+  std::string p    = addr ? ATSPI_PREFIX_PATH + addr.GetPath() : ATSPI_NULL_PATH;
+  dbusServer.emit2<std::string, int, int, DBus::EldbusVariant<int>, Address>(
+    p,
+    AtspiDbusInterfaceEventObject,
+    "MoveOuted",
+    "",
+    static_cast<int>(type),
+    0,
+    {0},
+    {"", "root"});
+}