atspi: move atspi initialization to elm_run.
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Mon, 27 Nov 2017 08:48:57 +0000 (14:18 +0530)
committerJiyoun Park <jy0703.park@samsung.com>
Thu, 21 Dec 2017 10:00:09 +0000 (19:00 +0900)
Change-Id: Ib0656d1312367ee214f4cb2b236f28a4d73a1dfe

src/lib/elementary/efl_ui_win.c
src/lib/elementary/elm_atspi_bridge.c
src/lib/elementary/elm_main.c

index 99bc2b5..6ca0424 100644 (file)
@@ -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
index 72bb77a..75f3f81 100644 (file)
@@ -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
index be028af..ae94f2e 100644 (file)
@@ -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);
 }