rebase_build: fix build error related with tizen_only code
authorJiyoun Park <jy0703.park@samsung.com>
Sat, 23 Dec 2017 04:45:56 +0000 (13:45 +0900)
committerJiyoun Park <jy0703.park@samsung.com>
Sat, 23 Dec 2017 04:45:56 +0000 (13:45 +0900)
   opensource change the code, so change tizen only code based on opensource.

15 files changed:
src/lib/ecore_wl2/ecore_wl2_display.c
src/lib/elementary/efl_access_component.c
src/lib/elementary/efl_access_component.eo
src/lib/elementary/efl_ui_multibuttonentry.c
src/lib/elementary/efl_ui_win.c
src/lib/elementary/elc_ctxpopup.c
src/lib/elementary/elc_popup.c
src/lib/elementary/elm_atspi_bridge.c
src/lib/elementary/elm_atspi_ewk_wrapper.c
src/lib/elementary/elm_atspi_proxy.c
src/lib/elementary/elm_gengrid.c
src/lib/elementary/elm_hover.c
src/lib/elementary/elm_label.c
src/lib/elementary/elm_toolbar.c
src/lib/elementary/elm_widget.h

index 90995b7..049a6d2 100644 (file)
@@ -1372,8 +1372,7 @@ _ecore_wl2_display_connect(Ecore_Wl2_Display *ewd, Eina_Bool sync)
    ewd->wl.registry = wl_display_get_registry(ewd->wl.display);
    wl_registry_add_listener(ewd->wl.registry, &_registry_listener, ewd);
 
-   cb = wl_display_sync(ewd->wl.display);
-   wl_callback_add_listener(cb, &_sync_listener, ewd);
+   _ecore_wl2_display_sync_add(ewd);
 
    if (sync)
      {
index 42a64a7..9d853ed 100644 (file)
@@ -3,6 +3,7 @@
 #endif
 
 #define EFL_ACCESS_COMPONENT_PROTECTED
+#define EFL_ACCESS_COMPONENT_BETA
 #define EFL_ACCESS_PROTECTED
 
 #include <Elementary.h>
index d9d0bcf..240c863 100644 (file)
@@ -100,7 +100,7 @@ mixin Efl.Access.Component ()
          return: Efl.Object; [[Top component object at given coordinate]]
       }
       //TIZEN_ONLY(20171108): bring HIGHLIGHT related changes
-      highlight_grab @protected {
+      highlight_grab @protected @beta {
          [[ Highlights accessible widget.
          returns true if highlight grab has successed, false otherwise.
 
@@ -112,7 +112,7 @@ mixin Efl.Access.Component ()
          //
          return: bool;
       }
-      highlight_clear @protected {
+      highlight_clear @protected @beta {
          [[ Clears highlight of accessible widget.
          returns true if clear has successed, false otherwise.
 
@@ -126,7 +126,7 @@ mixin Efl.Access.Component ()
       }
       //
       //TIZEN_ONLY(20161114): make atspi proxy work for more than two sockets created in one process
-      @property socket_offset @protected {
+      @property socket_offset @protected @beta {
          set {
             [[Sets position of socket offset.]]
          }
index 6b525f5..6520a1c 100644 (file)
@@ -716,14 +716,14 @@ _access_multibuttonentry_item_register(Evas_Object *obj,
 static char *
 _label_access_info_cb(void *data, Evas_Object *obj EINA_UNUSED)
 {
-   ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN_VAL(data, sd, NULL);
+   EFL_UI_MULTIBUTTONENTRY_DATA_GET_OR_RETURN_VAL(data, sd, NULL);
    return strdup((char *)sd->label_str);
 }
 
 static void
 _atspi_multibuttonentry_label_register(Evas_Object *obj, Eina_Bool is_atspi)
 {
-   ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(obj, sd);
+   EFL_UI_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(obj, sd);
    Evas_Object *label_obj;
    label_obj = (Evas_Object *)edje_object_part_object_get(sd->label, "elm.text");
    if (label_obj)
@@ -1698,7 +1698,7 @@ _atspi_obj_process(Evas_Object *obj, Eina_Bool is_atspi)
    Eina_List *l;
    Elm_Object_Item *it;
 
-   ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(obj, sd);
+   EFL_UI_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(obj, sd);
 
    /* label */
    _atspi_multibuttonentry_label_register(obj, is_atspi);
@@ -1720,7 +1720,7 @@ _efl_ui_multibuttonentry_elm_widget_on_access_update(Eo *obj, Efl_Ui_Multibutton
 //register/unregister access objects accordingly.
 // TIZEN_ONLY(20170516): connect to at-spi dbus based on org.a11y.Status.IsEnabled property
 EOLIAN static void
-_elm_multibuttonentry_elm_widget_screen_reader(Eo *obj, Elm_Multibuttonentry_Data *sd EINA_UNUSED, Eina_Bool is_screen_reader)
+_efl_ui_multibuttonentry_elm_widget_screen_reader(Eo *obj, Efl_Ui_Multibuttonentry_Data *sd EINA_UNUSED, Eina_Bool is_screen_reader)
 {
    _atspi_obj_process(obj, is_screen_reader);
    //TIZEN_ONLY(20161213): apply screen_reader_changed callback
@@ -2080,7 +2080,7 @@ _efl_ui_multibuttonentry_class_constructor(Efl_Class *klass)
 }
 
 EOLIAN static Eina_List*
-_elm_multibuttonentry_efl_access_children_get(Eo *obj EINA_UNUSED, Elm_Multibuttonentry_Data *sd)
+_efl_ui_multibuttonentry_efl_access_children_get(Eo *obj, Efl_Ui_Multibuttonentry_Data *sd)
 {
    Eina_List *ret = NULL;
    //TIZEN_ONLY(20160527) : Improve MBE atspi support
index a008e37..b06a2a8 100644 (file)
@@ -9,8 +9,11 @@
 #define EFL_GFX_SIZE_HINT_PROTECTED
 #define EFL_CANVAS_OBJECT_BETA
 #define EFL_CANVAS_OBJECT_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
 #define EFL_UI_WIN_INLINED_PROTECTED
+#define EFL_UI_FOCUS_OBJECT_PROTECTED
 #define EFL_UI_WIN_BETA
+#define EFL_CANVAS_BETA
 
 #include <Elementary.h>
 #include <Elementary_Cursor.h>
@@ -28,6 +31,7 @@
 
 #include "elm_part_helper.h"
 #include "efl_ui_win_part.eo.h"
+#include "elm_plug.eo.h"
 
 #define MY_CLASS EFL_UI_WIN_CLASS
 #define MY_CLASS_NAME "Efl.Ui.Win"
@@ -37,6 +41,8 @@
 
 static const Elm_Win_Trap *trap = NULL;
 
+static int _paused_windows = 0;
+
 #define TRAP(sd, name, ...)                                             \
   do                                                                    \
     {                                                                   \
@@ -81,6 +87,7 @@ struct _Efl_Ui_Win_Data
    Evas_Object          *img_obj, *frame_obj;
    Eo /* wref */        *bg, *content;
    Evas_Object          *obj; /* The object itself */
+   Evas_Object          *indicator;
 #ifdef HAVE_ELEMENTARY_X
    struct
    {
@@ -391,16 +398,18 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
    {SIG_WIDGET_UNFOCUSED, ""}, /**< handled by elm_widget */
 // TIZEN_ONLY(20150707): elm_conform for wayland, and signal if parts are changed
    {SIG_CONFORMANT_CHANGED, ""},
-//
    {SIG_AUX_HINT_ALLOWED, ""},
    {SIG_AUX_MESSAGE_RECEIVED, ""},
    {SIG_EFFECT_STARTED, ""},
    {SIG_EFFECT_DONE, ""},
    {SIG_LAUNCH_DONE, ""},
-   //TIZEN_ONLY(20161028): add smart signal 'atspi,screen,reader,changed'
+//
+//TIZEN_ONLY(20161028): add smart signal 'atspi,screen,reader,changed'
    {SIG_ATSPI_SCREEN_READER_CHANGED, ""},
-   //
+//
+// TIZEN_ONLY(20150707): elm_conform for wayland, and signal if parts are changed
    {SIG_VISIBILITY_CHANGED, ""},
+//
    {NULL, NULL}
 };
 
@@ -431,7 +440,11 @@ static Evas_Object *_precreated_win_obj = NULL;
 
 static Eina_Bool _elm_win_auto_throttled = EINA_FALSE;
 
+/*TIZEN_ONLY(20171113):Use ecore_job instead of ecore_timer
+static Ecore_Timer *_elm_win_state_eval_timer = NULL;
+*/
 static Ecore_Job *_elm_win_state_eval_job = NULL;
+//
 
 static void _elm_win_legacy_init(Efl_Ui_Win_Data *sd);
 static void
@@ -556,7 +569,7 @@ _elm_win_apply_alpha(Eo *obj, Efl_Ui_Win_Data *sd)
      }
 }
 
-static void
+static Eina_Bool
 _elm_win_state_eval(void *data EINA_UNUSED)
 {
    Eina_List *l;
@@ -566,7 +579,11 @@ _elm_win_state_eval(void *data EINA_UNUSED)
    int _elm_win_count_withdrawn = 0;
    Eina_Bool throttle = EINA_FALSE;
 
+/*TIZEN_ONLY(20171113):Use ecore_job instead of ecore_timer
+   _elm_win_state_eval_timer = NULL;
+*/
    _elm_win_state_eval_job = NULL;
+//
 
    EINA_LIST_FOREACH(_elm_win_list, l, obj)
      {
@@ -654,6 +671,7 @@ _elm_win_state_eval(void *data EINA_UNUSED)
           }
      }
    _win_noblank_eval();
+   return EINA_FALSE;
 }
 
 static Eina_Bool
@@ -694,8 +712,13 @@ _elm_win_flush_cache_and_exit(Eo *obj)
 static void
 _elm_win_state_eval_queue(void)
 {
+/*TIZEN_ONLY(20171113):Use ecore_job instead of ecore_timer
+  if (_elm_win_state_eval_timer) ecore_timer_del(_elm_win_state_eval_timer);
+   _elm_win_state_eval_timer = ecore_timer_add(0.5, _elm_win_state_eval, NULL);
+*/
    if (_elm_win_state_eval_job) ecore_job_del(_elm_win_state_eval_job);
    _elm_win_state_eval_job = ecore_job_add(_elm_win_state_eval, NULL);
+//
 }
 
 // example shot spec (wait 0.1 sec then save as my-window.png):
@@ -1700,10 +1723,10 @@ _elm_win_state_change(Ecore_Evas *ee)
    Eina_Bool ch_wm_rotation = EINA_FALSE;
 // TIZEN_ONLY(20150707): elm_conform for wayland, and signal if parts are changed
    Eina_Bool ch_conformant  = EINA_FALSE;
-//
    Eina_Bool ch_visibility = EINA_FALSE;
    Eina_Bool ch_aux_hint = EINA_FALSE;
    Eina_List *aux_hints = NULL;
+//
 
    const char *profile;
 
@@ -2594,11 +2617,19 @@ _efl_ui_win_show(Eo *obj, Efl_Ui_Win_Data *sd)
 
    if (do_eval)
      {
+/*TIZEN_ONLY(20171113):Use ecore_job instead of ecore_timer
+        if (_elm_win_state_eval_timer)
+          {
+             ecore_timer_del(_elm_win_state_eval_timer);
+             _elm_win_state_eval_timer = NULL;
+          }
+*/
         if (_elm_win_state_eval_job)
           {
              ecore_job_del(_elm_win_state_eval_job);
              _elm_win_state_eval_job = NULL;
           }
+//
         _elm_win_state_eval(NULL);
      }
    if (sd->shot.info) _shot_handle(sd);
@@ -3555,6 +3586,7 @@ _elm_win_wl_cursor_set(Evas_Object *obj, const char *cursor)
      }
 }
 
+// TIZEN_ONLY(20171109):allow changing window type after initializing
 static void
 _elm_win_wlwin_type_update(Efl_Ui_Win_Data *sd)
 {
@@ -3587,7 +3619,7 @@ _elm_win_wlwin_type_update(Efl_Ui_Win_Data *sd)
       case ELM_WIN_COMBO:
       case ELM_WIN_MENU:
       case ELM_WIN_POPUP_MENU:
-        wtype = ECORE_WL2_WINDOW_TYPE_MENU;
+        wtype = ECORE_WL2_WI// TIZEN_ONLY(20150722):NDOW_TYPE_MENU;
         break;
       case ELM_WIN_DND:
         wtype = ECORE_WL2_WINDOW_TYPE_DND;
@@ -3597,6 +3629,7 @@ _elm_win_wlwin_type_update(Efl_Ui_Win_Data *sd)
      }
    ecore_wl2_window_type_set(sd->wl.win, wtype);
 }
+//
 
 // TIZEN_ONLY(20150722): added signal for aux_hint(auxiliary hint)
 struct _Elm_Win_Aux_Message
@@ -4032,7 +4065,11 @@ _elm_win_shutdown(void)
              _elm_win_list = eina_list_remove_list(_elm_win_list, _elm_win_list);
           }
      }
+/*TIZEN_ONLY(20171113):Use ecore_job instead of ecore_timer
+   ELM_SAFE_FREE(_elm_win_state_eval_timer, ecore_timer_del);
+*/
    ELM_SAFE_FREE(_elm_win_state_eval_job, ecore_job_del);
+//
 }
 
 void
@@ -4138,6 +4175,47 @@ _elm_win_screen_reader(Eina_Bool is_screen_reader)
 }
 //
 
+//TIZEN_ONLY(20170621) handle atspi proxy connection at runtime
+void
+_elm_win_atspi(Eina_Bool is_atspi)
+{
+   const Eina_List *l;
+   Evas_Object *obj;
+   Efl_Access_State_Set ss;
+
+   EINA_LIST_FOREACH(_elm_win_list, l, obj)
+     {
+        if (!is_atspi)
+          {
+             _access_socket_proxy_unref(obj);
+          }
+        else
+          {
+             _access_socket_proxy_listen(obj);
+             ss = efl_access_state_set_get(obj);
+             if (STATE_TYPE_GET(ss, EFL_ACCESS_STATE_ACTIVE))
+               {
+                  efl_access_window_activated_signal_emit(obj);
+                  efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_ACTIVE, EINA_TRUE);
+               }
+             else
+               {
+                  Efl_Access_Role role;
+                  role = efl_access_role_get(obj);
+                  if (role == EFL_ACCESS_ROLE_INPUT_METHOD_WINDOW)
+                    {
+                       efl_access_window_activated_signal_emit(obj);
+                       efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_ACTIVE, EINA_TRUE);
+                    }
+               }
+          }
+        elm_widget_atspi(obj, is_atspi);
+     }
+}
+//
+//
+//
+
 void
 _elm_win_translate(void)
 {
@@ -5885,7 +5963,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
      evas_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, _elm_win_frame_pre_render, sd);
 #endif
 
-   // TIZEN_ONLY (20151017) do not prohibit fake win's auto-render
+// TIZEN_ONLY (20151017) do not prohibit fake win's auto-render
    if (type != ELM_WIN_FAKE)
      {
         //Prohibiting auto-rendering, until elm_win is shown.
@@ -5901,7 +5979,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
                }
           }
      }
  //
+ //
 
 #ifdef ELM_DEBUG
    Evas_Modifier_Mask mask = evas_key_modifier_mask_get(sd->evas, "Control");
@@ -7217,8 +7295,8 @@ _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd)
    Eina_Bool ret = EINA_FALSE, prev_alpha;
    const char *s;
 
-   int_ret = _elm_theme_object_set(obj, sd->legacy.edje, "win", "base",
-                                   elm_widget_style_get(obj));
+   int_ret = elm_widget_theme_object_set(obj, sd->legacy.edje, "win", "base",
+                                       elm_widget_style_get(obj));
    if (!int_ret) return EFL_UI_THEME_APPLY_FAILED;
 
    edje_object_mirrored_set(sd->legacy.edje, efl_ui_mirrored_get(obj));
@@ -7440,6 +7518,7 @@ elm_win_floating_mode_set(Evas_Object *obj, Eina_Bool floating)
    floating = !!floating;
    if (floating == sd->floating) return;
    sd->floating = floating;
+//TIZEN_ONLY(20171114): implement elm_win_floating_mode_set on wayland
 #if HAVE_ELEMENTARY_WL2
    _elm_win_wlwindow_get(sd);
    if (sd->wl.win)
@@ -7448,6 +7527,7 @@ elm_win_floating_mode_set(Evas_Object *obj, Eina_Bool floating)
         ecore_wl2_window_floating_mode_set(sd->wl.win, floating);
      }
 #endif
+//
 #ifdef HAVE_ELEMENTARY_X
    _internal_elm_win_xwindow_get(sd);
    if (sd->x.xwin)
@@ -9040,10 +9120,10 @@ elm_win_add(Evas_Object *parent, const char *name, Efl_Ui_Win_Type type)
       default: break;
      }
 
-   Evas_Object *obj = efl_add(klass, parent,
-                              efl_canvas_object_legacy_ctor(efl_added),
-                              efl_ui_win_name_set(efl_added, name),
-                              efl_ui_win_type_set(efl_added, type));
+   Evas_Object *obj = elm_legacy_add(klass, parent,
+                         efl_ui_win_name_set(efl_added, name),
+                         efl_ui_win_type_set(efl_added, type));
+
 //TIZEN_ONLY(20160628):  Add Performance log for cold booting
 #ifdef ENABLE_TTRACE
    traceEnd(TTRACE_TAG_EFL);
index 280a803..0e362a0 100644 (file)
@@ -6,6 +6,7 @@
 #define EFL_ACCESS_WIDGET_ACTION_PROTECTED
 #define ELM_WIDGET_PROTECTED
 #define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_ACCESS_COMPONENT_PROTECTED
 #define EFL_UI_TRANSLATABLE_PROTECTED
 
 #include <Elementary.h>
index 57ce2e0..654d85d 100644 (file)
@@ -7,6 +7,7 @@
 #define ELM_WIDGET_PROTECTED
 #define ELM_WIDGET_ITEM_PROTECTED
 #define EFL_UI_TRANSLATABLE_PROTECTED
+#define EFL_ACCESS_COMPONENT_PROTECTED
 
 #include <Elementary.h>
 #include "elm_priv.h"
@@ -2268,7 +2269,7 @@ _notify_style_set(Evas_Object *obj, const char *style)
         EINA_LIST_FOREACH(wd->cursors, l, cur)
           elm_cursor_theme(cur);
 
-        ret &= elm_obj_widget_theme_apply(obj);
+        ret &= efl_ui_widget_theme_apply(obj);
      }
 
    return ret;
index de055a0..55cfa4d 100644 (file)
 #include <stdint.h>
 #include <Elementary.h>
 #include "elm_priv.h"
+//TIZEN_ONLY(20171222): include eo info header for class check
+#include "elm_widget_index.h"
+//
 
 /*
  * Accessibility Bus info not defined in atspi-constants.h
  */
- #define A11Y_DBUS_NAME "org.a11y.Bus"
- #define A11Y_DBUS_PATH "/org/a11y/bus"
+#define A11Y_DBUS_NAME "org.a11y.Bus"
+#define A11Y_DBUS_PATH "/org/a11y/bus"
 #define A11Y_DBUS_INTERFACE "org.a11y.Bus"
 #define A11Y_DBUS_STATUS_INTERFACE "org.a11y.Status"
 // TIZEN_ONLY(20170516): connect to at-spi dbus based on org.a11y.Status.IsEnabled property
@@ -232,6 +235,15 @@ static const Elm_Atspi_Bridge_Event_Handler event_handlers[] = {
    //
 };
 
+//TIZEN_ONLY(20170925) atspi: send detail value for window activated signal
+enum
+{
+  EFL_ACCESS_WINDOW_ACTIVATE_INFO_DEFAULT_LABEL_ENABLED = 0,
+  EFL_ACCESS_WINDOW_ACTIVATE_INFO_DEFAULT_LABEL_DISABLED = 1 << 0,
+  EFL_ACCESS_WINDOW_ACTIVATE_INFO_KEYBOARD = 1 << 1,
+};
+//
+
 enum _Atspi_Object_Child_Event_Type
 {
    ATSPI_OBJECT_CHILD_ADDED = 0,
@@ -3928,8 +3940,8 @@ _iter_interfaces_append(Eldbus_Message_Iter *iter, const Eo *obj)
 static Eina_Bool
 _cache_item_reference_append_cb(Eo *bridge, Eo *data, Eldbus_Message_Iter *iter_array)
 {
-   if (!efl_ref_get(data) || efl_destructed_is(data))
-     return EINA_TRUE;
+  if (!efl_ref_count(data) || efl_destructed_is(data))
+    return EINA_TRUE;
 
    Eldbus_Message_Iter *iter_struct, *iter_sub_array;
    Efl_Access_State_Set states;
@@ -3987,46 +3999,46 @@ _cache_item_reference_append_cb(Eo *bridge, Eo *data, Eldbus_Message_Iter *iter_
    //eina_list_free(children_list);
    //
 
-   /* Marshall interfaces */
-   _iter_interfaces_append(iter_struct, data);
+  /* Marshall interfaces */
+  _iter_interfaces_append(iter_struct, data);
 
-   /* Marshall name */
-   const char *name = NULL;
-   name = efl_access_name_get(data);
-   if (!name)
-     name = "";
+  /* Marshall name */
+  const char *name = NULL;
+  name = efl_access_name_get(data);
+  if (!name)
+    name = "";
 
-   eldbus_message_iter_basic_append(iter_struct, 's', name);
+  eldbus_message_iter_basic_append(iter_struct, 's', name);
 
-   /* Marshall role */
-   eldbus_message_iter_basic_append(iter_struct, 'u', role);
+  /* Marshall role */
+  eldbus_message_iter_basic_append(iter_struct, 'u', role);
 
-   /* Marshall description */
-   const char* description = NULL;
-   description = efl_access_description_get(data);
-   if (!description)
-     description = "";
-   eldbus_message_iter_basic_append(iter_struct, 's', description);
+  /* Marshall description */
+  const char* description = NULL;
+  description = efl_access_description_get(data);
+  if (!description)
+    description = "";
+  eldbus_message_iter_basic_append(iter_struct, 's', description);
 
-   /* Marshall state set */
-   iter_sub_array = eldbus_message_iter_container_new(iter_struct, 'a', "u");
-   EINA_SAFETY_ON_NULL_GOTO(iter_sub_array, fail);
+  /* Marshall state set */
+  iter_sub_array = eldbus_message_iter_container_new(iter_struct, 'a', "u");
+  EINA_SAFETY_ON_NULL_GOTO(iter_sub_array, fail);
 
-   states = efl_access_state_set_get(data);
+  states = efl_access_state_set_get(data);
 
-   unsigned int s1 = states & 0xFFFFFFFF;
-   unsigned int s2 = (states >> 32) & 0xFFFFFFFF;
-   eldbus_message_iter_basic_append(iter_sub_array, 'u', s1);
-   eldbus_message_iter_basic_append(iter_sub_array, 'u', s2);
+  unsigned int s1 = states & 0xFFFFFFFF;
+  unsigned int s2 = (states >> 32) & 0xFFFFFFFF;
+  eldbus_message_iter_basic_append(iter_sub_array, 'u', s1);
+  eldbus_message_iter_basic_append(iter_sub_array, 'u', s2);
 
-   eldbus_message_iter_container_close(iter_struct, iter_sub_array);
-   eldbus_message_iter_container_close(iter_array, iter_struct);
+  eldbus_message_iter_container_close(iter_struct, iter_sub_array);
+  eldbus_message_iter_container_close(iter_array, iter_struct);
 
-   return EINA_TRUE;
+  return EINA_TRUE;
 
 fail:
-   if (iter_struct) eldbus_message_iter_del(iter_struct);
-   return EINA_TRUE;
+  if (iter_struct) eldbus_message_iter_del(iter_struct);
+  return EINA_TRUE;
 }
 
 static Eldbus_Message *
@@ -4241,33 +4253,7 @@ static unsigned int vector_size(vector *v)
 #define CALL(fncname, ...) table->fncname(table, __VA_ARGS__)
 static unsigned char _accept_object_check_role(accessibility_navigation_pointer_table *table, void *obj)
 {
-   AtspiRole role = CALL(object_get_role, obj);
-   switch (role)
-     {
-       case ATSPI_ROLE_APPLICATION:
-       case ATSPI_ROLE_FILLER:
-       case ATSPI_ROLE_SCROLL_PANE:
-       case ATSPI_ROLE_SPLIT_PANE:
-       case ATSPI_ROLE_WINDOW:
-       case ATSPI_ROLE_IMAGE:
-       case ATSPI_ROLE_LIST:
-       case ATSPI_ROLE_ICON:
-       case ATSPI_ROLE_TOOL_BAR:
-       case ATSPI_ROLE_REDUNDANT_OBJECT:
-       case ATSPI_ROLE_COLOR_CHOOSER:
-       case ATSPI_ROLE_TREE_TABLE:
-       case ATSPI_ROLE_PAGE_TAB_LIST:
-       case ATSPI_ROLE_PAGE_TAB:
-       case ATSPI_ROLE_SPIN_BUTTON:
-       case ATSPI_ROLE_INPUT_METHOD_WINDOW:
-       case ATSPI_ROLE_EMBEDDED:
-       case ATSPI_ROLE_INVALID:
-       case ATSPI_ROLE_NOTIFICATION:
-         return 0;
-       default:
-         break;
-     }
-   return 1;
+   return _elm_widget_atspi_role_acceptable_check(obj);
 }
 
 static unsigned char _state_set_is_set(uint64_t state_set, AtspiStateType state)
@@ -5244,15 +5230,17 @@ _registered_listeners_get(void *data, const Eldbus_Message *msg, Eldbus_Pending
    if (!pd->connected)
      {
         Eo *root, *pr;
+        //TIZEN_ONLY(20170910) atspi: emit signal after atspi bridge is connected
         pd->connected = EINA_TRUE;
         efl_event_callback_legacy_call(data, ELM_ATSPI_BRIDGE_EVENT_CONNECTED, NULL);
+        _elm_win_atspi(EINA_TRUE);
+        //
 
         // buid cache
         root = elm_obj_atspi_bridge_root_get(data);
         _bridge_cache_build(data, root);
 
         // initialize pending proxy
-        Eo *pr;
         EINA_LIST_FREE(pd->socket_queue, pr)
            _socket_ifc_create(pd->a11y_bus, pr);
         EINA_LIST_FREE(pd->plug_queue, pr)
@@ -5531,6 +5519,33 @@ _move_outed_signal_send(void *data, const Efl_Event *event)
 }
 //
 
+static unsigned int
+_window_activated_detail_value_add(Eo *obj)
+{
+   unsigned int ret = EFL_ACCESS_WINDOW_ACTIVATE_INFO_DEFAULT_LABEL_ENABLED;
+   Eina_List *l, *attr_list = NULL;
+   Efl_Access_Attribute *attr = NULL;
+
+   attr_list = efl_access_attributes_get(obj);
+   EINA_LIST_FOREACH(attr_list, l, attr)
+     {
+        if (!strcmp(attr->key, "default_label") && !strcmp(attr->value, "disabled"))
+          {
+             ret |= EFL_ACCESS_WINDOW_ACTIVATE_INFO_DEFAULT_LABEL_DISABLED;
+             break;
+          }
+     }
+   if (attr_list)
+     efl_access_attributes_list_free(attr_list);
+
+   Efl_Access_Role role = EFL_ACCESS_ROLE_INVALID;
+   role = efl_access_role_get(obj);
+   if (role == EFL_ACCESS_ROLE_INPUT_METHOD_WINDOW)
+     ret |= EFL_ACCESS_WINDOW_ACTIVATE_INFO_KEYBOARD;
+
+   return ret;
+}
+
 static void
 _window_signal_send(void *data, const Efl_Event *event)
 {
@@ -5570,9 +5585,14 @@ _window_signal_send(void *data, const Efl_Event *event)
         efl_event_callback_stop(event->object);
         return;
      }
+   //TIZEN_ONLY(20170925) atspi: send detail value for window activated signal
+   unsigned int det1 = 0;
+   if (event->desc == EFL_ACCESS_WINDOW_EVENT_WINDOW_ACTIVATED)
+     det1 = _window_activated_detail_value_add(event->object);
+   //
 
    _bridge_signal_send(data, event->object, ATSPI_DBUS_INTERFACE_EVENT_WINDOW,
-                       &_window_obj_signals[type], "", 0, 0, "i", 0);
+                       &_window_obj_signals[type], "", det1, 0, "i", 0);
 }
 
 static void
@@ -5843,14 +5863,12 @@ _bridge_cache_build(Eo *bridge, void *obj)
      {
         if (STATE_TYPE_GET(ss, EFL_ACCESS_STATE_ACTIVE))
           {
-             efl_access_window_activated_signal_emit(obj);
              // TIZEN_ONLY(20160802): do not handle events if the window is not activated
              pd->window_activated = EINA_TRUE;
              //
           }
         else
           {
-             efl_access_window_deactivated_signal_emit(obj);
              // TIZEN_ONLY(20160802): do not handle events if the window is not activated
              pd->window_activated = EINA_FALSE;
              //
@@ -6140,7 +6158,10 @@ _at_spi_client_enabled_get(void *data, const Eldbus_Message *msg, Eldbus_Pending
    if (is_enabled)
      _a11y_connection_init(data);
    else
-     DBG("AT-SPI2 stack not enabled.");
+     {
+        _elm_win_atspi(is_enabled);
+        DBG("AT-SPI2 stack not enabled.");
+     }
 }
 //
 
@@ -6189,7 +6210,6 @@ _elm_atspi_bridge_shutdown(void)
    if (_a11y_socket_address)
      eina_stringshare_del(_a11y_socket_address);
    _a11y_socket_address = NULL;
-   //
    _efl_access_shutdown();
 }
 
@@ -6422,10 +6442,16 @@ _properties_changed_cb(void *data, Eldbus_Proxy *proxy EINA_UNUSED, void *event)
              ERR("Unable to get " A11Y_DBUS_ENABLED_PROPERTY " property value");
              return;
           }
+
+        _elm_win_atspi(val);
+
         if (val)
           _a11y_connection_init(bridge);
         else
-          _a11y_connection_shutdown(bridge);
+          {
+             _elm_win_atspi(EINA_FALSE);
+             _a11y_connection_shutdown(bridge);
+          }
      }
    //
 }
index 1f9e665..fd23f9f 100644 (file)
@@ -169,7 +169,7 @@ _elm_atspi_ewk_wrapper_a11y_init(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED,
         // In order to avoid situation when ewk a11y may be accessed from different
         // a11y node we check if reparenting occured and reset wrapper parent
         if (parent != elm_widget_parent_get(wrapper)) {
-          elm_obj_widget_sub_object_add(parent, wrapper);
+          elm_widget_sub_object_add(parent, wrapper);
         }
    }
    elm_atspi_ewk_wrapper_connection_init(wrapper);
index f8be371..a127f3b 100644 (file)
@@ -7,6 +7,9 @@
 #include <Elementary.h>
 #include "elm_widget.h"
 #include "elm_priv.h"
+//TIZEN_ONLY(20171222): include headerfile for eo info
+#include "elm_widget_ctxpopup.h"
+//
 
 
 static Eina_List *_socket_list;
@@ -162,4 +165,14 @@ _elm_atspi_proxy_socket_list_get(void)
    return eina_list_clone(_socket_list);
 }
 
+EOLIAN static void
+_elm_atspi_proxy_elm_widget_atspi(Eo *obj, Elm_Atspi_Proxy_Data *_pd, Eina_Bool is_atspi)
+{
+   EINA_SAFETY_ON_NULL_RETURN(obj);
+   if (is_atspi && _pd->type == ELM_ATSPI_PROXY_TYPE_PLUG)
+     {
+        elm_atspi_bridge_utils_proxy_connect(obj);
+     }
+}
+
 #include "elm_atspi_proxy.eo.c"
index 89d33b7..cca2e67 100644 (file)
@@ -9,6 +9,7 @@
 #define EFL_ACCESS_SELECTION_PROTECTED
 #define EFL_ACCESS_WIDGET_ACTION_PROTECTED
 #define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_ACCESS_BRIDGE_PROTECTED
 #define EFL_UI_FOCUS_COMPOSITION_PROTECTED
 
 #include <Elementary.h>
index 586efe6..535a8a0 100644 (file)
@@ -302,7 +302,6 @@ EOLIAN static Efl_Ui_Theme_Apply
 _elm_hover_elm_widget_theme_apply(Eo *obj, Elm_Hover_Data *sd)
 {
    Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED;
-   int_ret = elm_obj_widget_theme_apply(efl_super(obj, MY_CLASS));
    int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
    if (!int_ret) return EFL_UI_THEME_APPLY_FAILED;
 
index b678301..9a15b19 100644 (file)
@@ -770,7 +770,7 @@ _elm_label_text_style_user_push(Eo *obj, Elm_Label_Data *sd, const char *style)
 {
    if (!eina_stringshare_replace(&sd->text_style_user, style)) return;
 
-   elm_obj_widget_theme_apply(obj);
+   efl_ui_widget_theme_apply(obj);
 }
 
 EOLIAN static void
@@ -782,7 +782,7 @@ _elm_label_text_style_user_pop(Eo *obj, Elm_Label_Data *sd)
         sd->text_style_user = NULL;
      }
 
-   elm_obj_widget_theme_apply(obj);
+   efl_ui_widget_theme_apply(obj);
 }
 
 EOLIAN static const char *
index 02ceaae..8674a54 100644 (file)
@@ -3977,7 +3977,6 @@ _elm_toolbar_efl_access_state_set_get(Eo *obj, Elm_Toolbar_Data *sd EINA_UNUSED)
 }
 
 // TIZEN_ONLY(20171114): Add accessibility highlight for toolbar items f919df709e670600fcea71c3001a5ce5221b61e0
-
 EOLIAN static Eina_Bool
 _elm_toolbar_item_efl_access_component_highlight_grab(Eo *eo_it, Elm_Toolbar_Item_Data *it)
 {
index 8e4907f..9c53f9f 100644 (file)
@@ -421,11 +421,6 @@ typedef struct _Elm_Widget_Smart_Data
    Eina_Inlist                  *translate_strings;
    Eina_List                    *focus_chain;
    Eina_List                    *event_cb;
-   const char                   *description; /**< Accessibility description */
-   //TIZEN_ONLY(20150731) : add i18n support for name and description
-   const char                   *atspi_translation_domain;
-   ///
-
    /* this is a hook to be set on-the-fly on widgets. this is code
     * handling the request of showing a specific region from an inner
     * widget (mainly issued by entries, on cursor moving) */
@@ -658,10 +653,6 @@ struct _Elm_Widget_Item_Data
    Eina_List                     *signals;
    Eina_Hash                     *labels;
    Evas_Object                   *track_obj;
-   const char                   *description; /**< Accessibility description */
-   //TIZEN_ONLY(20150731) : add i18n support for name and description
-   const char                   *atspi_translation_domain;
-   ///
 
    Eina_Bool                      disabled : 1;
    Eina_Bool                      on_deletion : 1;
@@ -679,7 +670,13 @@ EAPI Eina_Bool        elm_widget_api_check(int ver);
 EAPI Eina_Bool        elm_widget_access(Evas_Object *obj, Eina_Bool is_access);
 //TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off,
 //register/unregister access objects accordingly.
-EAPI Eina_Bool        elm_widget_screen_reader(Evas_Object *obj, Eina_Bool is_screen_reader);
+// TIZEN_ONLY(20170516): connect to at-spi dbus based on org.a11y.Status.IsEnabled property
+EAPI Eina_Bool        elm_widget_screen_reader(Evas_Object *obj, Eina_Bool is_access);
+EAPI Eina_Bool        elm_widget_atspi(Evas_Object *obj, Eina_Bool is_atspi);
+//TIZEN_ONLY(20170621) handle atspi proxy connection at runtime
+EAPI Eo              *elm_widget_atspi_plug_type_proxy_get(Evas_Object *obj);
+//
+//
 //
 EAPI Efl_Ui_Theme_Apply  elm_widget_theme(Evas_Object *obj);
 EAPI void             elm_widget_theme_specific(Evas_Object *obj, Elm_Theme *th, Eina_Bool force);
@@ -813,6 +810,10 @@ EAPI Eina_Bool        _elm_widget_item_onscreen_is(Elm_Object_Item *item);
 const char*           _elm_widget_accessible_plain_name_get(Evas_Object *obj, const char* name);
 const char*           _elm_widget_item_accessible_plain_name_get(Elm_Object_Item *item, const char* name);
 
+//TIZEN_ONLY(20170905): find valid child of list item
+Eina_Bool _elm_widget_atspi_role_acceptable_check(Eo *obj);
+//
+
 Efl_Canvas_Object *   _efl_ui_widget_bg_get(Elm_Widget *obj);
 
 #define ELM_WIDGET_DATA_GET_OR_RETURN(o, ptr, ...)   \