summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Stanislawski <l.stanislaws@samsung.com>2015-06-24 11:13:54 +0200
committerLukasz Stanislawski <l.stanislaws@samsung.com>2015-06-29 09:15:53 +0200
commitac7be77499b71258ba8098f8d307c96a8aa5194a (patch)
tree221a7a79db1a703a4c01d04256fe8af06e8c5db7
parentcf4bc136d36e3134d88492a811f1a52c4ca89aa3 (diff)
downloadelementary-ac7be77499b71258ba8098f8d307c96a8aa5194a.tar.gz
atspi: cache update fix
Change-Id: Id374647438a434aacb652e584c1df2ec3ed3b8e1
-rw-r--r--src/lib/elm_atspi_bridge.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c
index 979488b41..028d3d17a 100644
--- a/src/lib/elm_atspi_bridge.c
+++ b/src/lib/elm_atspi_bridge.c
@@ -3114,8 +3114,17 @@ static void
_bridge_object_unregister(Eo *bridge, Eo *obj)
{
char *path;
+ Eldbus_Message *sig;
+
ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd);
+ sig = eldbus_service_signal_new(pd->cache_interface, ATSPI_OBJECT_CHILD_REMOVED);
+ Eldbus_Message_Iter *iter = eldbus_message_iter_get(sig);
+
+ _iter_object_reference_append(iter, obj);
+
+ eldbus_service_signal_send(pd->cache_interface, sig);
+
path = _bridge_path_from_access_object(bridge, obj);
eina_hash_del(pd->cache, path, obj);
free(path);
@@ -3346,6 +3355,7 @@ _screen_reader_enabled_get(void *data, const Eldbus_Message *msg, Eldbus_Pending
static void _bridge_object_register(Eo *bridge, Eo *obj)
{
char *path;
+ Eldbus_Message *sig;
ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd);
@@ -3378,6 +3388,11 @@ static void _bridge_object_register(Eo *bridge, Eo *obj)
if (eo_isa(obj, ELM_INTERFACE_ATSPI_TEXT_INTERFACE))
eo_do(obj, eo_event_callback_array_add(_text_cb(), bridge));
+ sig = eldbus_service_signal_new(pd->cache_interface, ATSPI_OBJECT_CHILD_ADDED);
+ Eldbus_Message_Iter *iter = eldbus_message_iter_get(sig);
+ _append_item_fn(NULL, NULL, obj, iter);
+
+ eldbus_service_signal_send(pd->cache_interface, sig);
free(path);
}