atspi: delay registration of atspi object until its shown

This commit is contained in:
Lukasz Stanislawski 2015-03-25 18:07:40 +01:00 committed by Lukasz Stanislawski
parent 33ea156e8b
commit ea1f1d9c36
2 changed files with 8 additions and 17 deletions

View File

@ -2772,17 +2772,6 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De
return EINA_TRUE;
}
static Eina_Bool
_idler_cb(void *data EINA_UNUSED)
{
Eo *obj;
EINA_LIST_FREE(_pending_objects, obj)
_cache_build(obj);
_pending_objects = NULL;
_cache_update_idler = NULL;
return EINA_FALSE;
}
static Eina_Bool
_children_changed_signal_send(void *data, Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
{
@ -2797,9 +2786,7 @@ _children_changed_signal_send(void *data, Eo *obj, const Eo_Event_Description *d
// update cached objects
if (ev_data->is_added)
{
_pending_objects = eina_list_append(_pending_objects, obj);
if (!_cache_update_idler)
_cache_update_idler = ecore_idler_add(_idler_cb, NULL);
_cache_build(obj);
}
if (!STATE_TYPE_GET(_object_children_broadcast_mask, type))

View File

@ -543,6 +543,13 @@ _elm_widget_evas_object_smart_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUS
Eina_Iterator *it;
Evas_Object *o;
if (_elm_config->atspi_mode)
{
Eo *parent;
eo_do(obj, parent = elm_interface_atspi_accessible_parent_get());
elm_interface_atspi_accessible_children_changed_added_signal_emit(parent, obj);
}
it = evas_object_smart_iterator_new(obj);
EINA_ITERATOR_FOREACH(it, o)
{
@ -1174,9 +1181,6 @@ _elm_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj
sd->subobjs = eina_list_append(sd->subobjs, sobj);
evas_object_data_set(sobj, "elm-parent", obj);
if (_elm_config->atspi_mode)
elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, sobj);
_callbacks_add(sobj, obj);
if (_elm_widget_is(sobj))
{