atspi: Make socket listen if atspi is enabled 69/133769/4
authorShinwoo Kim <cinoo.kim@samsung.com>
Tue, 13 Jun 2017 09:18:03 +0000 (18:18 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Wed, 28 Jun 2017 23:32:55 +0000 (23:32 +0000)
The socket proxy try to listen if the atspi is not enabled.
So it elm_atspi_bridge_utils_proxy_listen returns with out creating socket
interface(_socket_ifc_create) because it checks return value of
_elm_atspi_bridge_get which is used in _elm_atspi_enabled also.

Change-Id: Ie7a929d53ca9cc90e089f6a167b0480fc041c5af

src/lib/elm_widget.c
src/lib/elm_win.c

index ed9bdf39671d6fd952a0f3e07fcf27675cabcd93..4fe75259a2b79d8ad0cfbb15ef9fe8f82394a896 100644 (file)
@@ -6679,7 +6679,7 @@ static Eina_List *_lines_split(Eina_List *children)
         evas_object_geometry_get(c, NULL, &y, NULL, &h);
 
         /* remove child if its height == 0 */
-        if (h == 0) continue;
+        if (h == 0 && !eo_isa(c, ELM_ATSPI_PROXY_CLASS)) continue;
 
         if ((yl + (int)(0.25 * hl)) >= y)
           {
index a2f6dd65667326eadbe869bf0985b8bd22b715df..90b5eae2b96decec0d1651c85fa9ef4a7cfe00dc 100644 (file)
@@ -1787,6 +1787,28 @@ _deferred_ecore_evas_free(void *data)
    _elm_win_deferred_free--;
 }
 
+//TIZEN_ONLY(20170613) -listen if atspi is enabled
+static void
+_atspi_socket_proxy_listen(Eo * obj)
+{
+   ELM_WIN_DATA_GET(obj, sd);
+
+   const char *plug_id;
+   plug_id = evas_object_data_get(obj, "___PLUGID");
+   if ((plug_id) != NULL)
+     {
+        char *svcname, *svcnum;
+        if (!sd->socket_proxy && _elm_atspi_bridge_plug_id_split(plug_id, &svcname, &svcnum))
+          {
+             sd->socket_proxy = _elm_atspi_bridge_utils_proxy_create(obj, svcname, atoi(svcnum), ELM_ATSPI_PROXY_TYPE_SOCKET);
+             elm_atspi_bridge_utils_proxy_listen(sd->socket_proxy);
+             free(svcname);
+             free(svcnum);
+          }
+     }
+}
+//
+
 EOLIAN static void
 _elm_win_evas_object_smart_show(Eo *obj, Elm_Win_Data *sd)
 {
@@ -1816,21 +1838,11 @@ _elm_win_evas_object_smart_show(Eo *obj, Elm_Win_Data *sd)
      }
 
    // TIZEN_ONLY(20160705) - enable atspi_proxy to work
-   /* _elm_atspi_enabled() is not necessary, because it could be disconnected at this point */
-   if (_elm_config->atspi_mode)
+   if (_elm_atspi_enabled())
      {
-        const char *plug_id_2;
-        if ((plug_id_2 = evas_object_data_get(obj, "___PLUGID")) != NULL)
-          {
-             char *svcname, *svcnum;
-             if (!sd->socket_proxy && _elm_atspi_bridge_plug_id_split(plug_id_2, &svcname, &svcnum))
-               {
-                  sd->socket_proxy = _elm_atspi_bridge_utils_proxy_create(obj, svcname, atoi(svcnum), ELM_ATSPI_PROXY_TYPE_SOCKET);
-                  elm_atspi_bridge_utils_proxy_listen(sd->socket_proxy);
-                  free(svcname);
-                  free(svcnum);
-               }
-          }
+        //TIZEN_ONLY(20170613) -listen if atspi is enabled
+        _atspi_socket_proxy_listen(obj);
+        //
      }
    //
 
@@ -3017,6 +3029,12 @@ _elm_win_screen_reader(Eina_Bool is_screen_reader)
           {
              eo_do(obj, elm_interface_atspi_component_highlight_clear());
           }
+        //TIZEN_ONLY(20170613) -listen if atspi is enabled
+        else
+          {
+             _atspi_socket_proxy_listen(obj);
+          }
+        //
      }
 }
 //