}
}
-static void
-_on_atspi_bus_connected(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
-{
- Evas_Object *win;
- Eina_List *l;
-
- EINA_LIST_FOREACH(_elm_win_list, l, win)
- {
- /**
- * Reemit accessibility events when AT-SPI2 connection is begin
- * established. This assures that Assistive Technology clients will
- * receive all org.a11y.window events and could keep track of active
- * windows whithin system.
- */
- efl_access_window_created_signal_emit(win);
- if (elm_win_focus_get(win))
- {
- Evas_Object *target;
- efl_access_window_activated_signal_emit(win);
- /** Reemit focused event to inform atspi clients about currently
- * focused object **/
- {
- Efl_Ui_Focus_Manager *m;
-
- m = win;
-
- while (efl_ui_focus_manager_redirect_get(m))
- m = efl_ui_focus_manager_redirect_get(m);
-
- target = efl_ui_focus_manager_focus_get(m);
- }
- if (target)
- efl_access_state_changed_signal_emit(target, EFL_ACCESS_STATE_FOCUSED, EINA_TRUE);
- }
- else
- efl_access_window_deactivated_signal_emit(win);
- }
-}
-
EOLIAN static void
_efl_ui_win_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
-
- if (_elm_config->atspi_mode)
- {
- Eo *bridge = _elm_atspi_bridge_get();
- if (bridge)
- efl_event_callback_add(bridge, ELM_ATSPI_BRIDGE_EVENT_CONNECTED, _on_atspi_bus_connected, NULL);
- }
}
EOLIAN static void
else _set_broadcast_flag(event, data);
}
- /* TIZEN_ONLY(20171108): make atspi_proxy work
- if (!pd->connected)
- efl_event_callback_legacy_call(data, ELM_ATSPI_BRIDGE_EVENT_CONNECTED, NULL);
- pd->connected = EINA_TRUE;
- */
//TIZEN_ONLY(20171108): make atspi_proxy work
if (!pd->connected)
{
+ Eo *root, *pr;
pd->connected = EINA_TRUE;
+ efl_event_callback_legacy_call(data, ELM_ATSPI_BRIDGE_EVENT_CONNECTED, NULL);
+
+ // buid cache
+ root = elm_obj_atspi_bridge_root_get(data);
+ _bridge_cache_build(data, root);
// initialize pending proxy
Eo *pr;
{
ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(obj, pd);
- //TIZEN_ONLY(20171108): make atspi_proxy work
- Eo *root;
- //
pd->a11y_bus = eldbus_private_address_connection_get(socket_addr);
if (!pd->a11y_bus)
return;
if (!getenv("ELM_ATSPI_NO_EMBED"))
_elm_atspi_bridge_app_register(obj);
- // buid cache
- root = elm_obj_atspi_bridge_root_get(obj);
- _bridge_cache_build(obj, root);
- //
-
// register accessible object event listener
pd->event_hdlr = efl_access_event_handler_add(EFL_ACCESS_MIXIN, _bridge_accessible_event_dispatch, obj);
- //TIZEN_ONLY(20171108): make atspi_proxy work
- // additionally register all socket objects and its descendants
- EINA_LIST_FREE(pd->plug_queue, obj)
- _plug_connect(pd->a11y_bus, obj);
- EINA_LIST_FREE(pd->socket_queue, obj)
- _socket_ifc_create(pd->a11y_bus, obj);
- pd->plug_queue = pd->socket_queue = NULL;
- //
}
static void
_accessibility_currently_highlighted_obj = NULL;
//
- if (_elm_config->atspi_mode != ELM_ATSPI_MODE_OFF)
- _elm_atspi_bridge_init();
if (!_elm_config->web_backend)
_elm_config->web_backend = "none";
if (!_elm_web_init(_elm_config->web_backend))
ecore_event_handler_del(system_handlers[1]);
_elm_win_shutdown();
- _elm_atspi_bridge_shutdown();
while (_elm_win_deferred_free) ecore_main_loop_iterate();
EAPI void
elm_run(void)
{
+//TIZEN_ONLY(20171127): move atspi initialization to elm_run.
+ if (_elm_config->atspi_mode != ELM_ATSPI_MODE_OFF)
+ _elm_atspi_bridge_init();
+//
ecore_main_loop_begin();
}
EAPI void
elm_exit(void)
{
+//TIZEN_ONLY(20171127): move atspi initialization to elm_run.
+ _elm_atspi_bridge_shutdown();
+//
efl_exit(0);
}