From 273ad815147a7916c426b6dd60fe45a523ccf048 Mon Sep 17 00:00:00 2001 From: Lukasz Stanislawski Date: Mon, 27 Nov 2017 14:18:57 +0530 Subject: [PATCH] atspi: move atspi initialization to elm_run. Change-Id: Ib0656d1312367ee214f4cb2b236f28a4d73a1dfe --- src/lib/elementary/efl_ui_win.c | 46 ----------------------------------- src/lib/elementary/elm_atspi_bridge.c | 27 +++++--------------- src/lib/elementary/elm_main.c | 10 +++++--- 3 files changed, 13 insertions(+), 70 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 99bc2b5..6ca0424 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -7379,56 +7379,10 @@ _elm_win_focus_auto_hide(Evas_Object *obj) } } -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 diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index 72bb77a..75f3f81 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -4004,15 +4004,16 @@ _registered_listeners_get(void *data, const Eldbus_Message *msg, Eldbus_Pending 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; @@ -4642,9 +4643,6 @@ _a11y_bus_initialize(Eo *obj, const char *socket_addr) { 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; @@ -4667,22 +4665,9 @@ _a11y_bus_initialize(Eo *obj, const char *socket_addr) 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 diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index be028af..ae94f2e 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -423,8 +423,6 @@ elm_init(int argc, char **argv) _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)) @@ -455,7 +453,6 @@ elm_shutdown(void) ecore_event_handler_del(system_handlers[1]); _elm_win_shutdown(); - _elm_atspi_bridge_shutdown(); while (_elm_win_deferred_free) ecore_main_loop_iterate(); @@ -1320,6 +1317,10 @@ elm_quicklaunch_exe_path_get(const char *exe, const char *cwd) 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(); } @@ -1336,6 +1337,9 @@ _on_terminate(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) EAPI void elm_exit(void) { +//TIZEN_ONLY(20171127): move atspi initialization to elm_run. + _elm_atspi_bridge_shutdown(); +// efl_exit(0); } -- 2.7.4