// TIZEN_ONLY(20160120): support visibility_change event
Eina_Bool obscured : 1;
//
+
+ //TIZEN_ONLY(20230220): Add SetListenPostRender to accessible object
+ Eina_Bool listen_render_post : 1;
+ //
};
struct _Input_Pointer_Iterator
}
//
+//TIZEN_ONLY(20230220): Add SetListenPostRender to accessible object
+static void
+_elm_win_render_post_event_cb(void *data,
+ Evas *e EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ Eo *win = data;
+
+ efl_access_object_event_emit(win, EFL_ACCESS_WINDOW_EVENT_WINDOW_RENDER_POST, NULL);
+}
+
+EOLIAN void
+_efl_ui_win_efl_access_object_listen_render_post_set(Eo *obj, Efl_Ui_Win_Data *sd, Eina_Bool enabled)
+{
+ if (enabled && !sd->listen_render_post)
+ {
+ evas_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_POST,_elm_win_render_post_event_cb, obj);
+ sd->listen_render_post = EINA_TRUE;
+ }
+ else if (!enabled && sd->listen_render_post)
+ {
+ evas_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_POST, _elm_win_render_post_event_cb, obj);
+ sd->listen_render_post = EINA_FALSE;
+ }
+}
+//
+
EOLIAN static Eina_Rect
_efl_ui_win_efl_access_component_extents_get(const Eo *obj, Efl_Ui_Win_Data *_pd EINA_UNUSED, Eina_Bool screen_coords)
{
{ EFL_ACCESS_WINDOW_EVENT_WINDOW_MAXIMIZED, _window_signal_send},
{ EFL_ACCESS_WINDOW_EVENT_WINDOW_MINIMIZED, _window_signal_send},
{ EFL_ACCESS_WINDOW_EVENT_WINDOW_RESTORED, _window_signal_send},
+ //TIZEN_ONLY(20230220): Add render post event
+ { EFL_ACCESS_WINDOW_EVENT_WINDOW_RENDER_POST, _window_signal_send},
+ //
{ EFL_ACCESS_SELECTION_EVENT_ACCESS_SELECTION_CHANGED, _selection_signal_send},
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, _text_caret_moved_send },
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_INSERTED, _text_text_inserted_send },
ATSPI_WINDOW_EVENT_SHADE,
ATSPI_WINDOW_EVENT_UUSHADE,
ATSPI_WINDOW_EVENT_RESTYLE,
+ //TIZEN_ONLY(20230220): Add render post event
+ ATSPI_WINDOW_EVENT_RENDER_POST,
+ //
};
static const Eldbus_Signal _event_obj_signals[] = {
[ATSPI_WINDOW_EVENT_SHADE] = {"Shade", ELDBUS_ARGS({"siiv(so)", NULL}), 0},
[ATSPI_WINDOW_EVENT_UUSHADE] = {"uUshade", ELDBUS_ARGS({"siiv(so)", NULL}), 0},
[ATSPI_WINDOW_EVENT_RESTYLE] = {"Restyle", ELDBUS_ARGS({"siiv(so)", NULL}), 0},
+ //TIZEN_ONLY(20230220): Add render post event
+ [ATSPI_WINDOW_EVENT_RENDER_POST] = {"PostRender", ELDBUS_ARGS({"siiv(so)", NULL}), 0},
+ //
{NULL, ELDBUS_ARGS({NULL, NULL}), 0}
};
}
//
+//TIZEN_ONLY(20230220) Add SetListenPostRender to accessible object
+static Eldbus_Message *
+_accessible_set_listen_render_post(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
+{
+ const char *obj_path = eldbus_message_path_get(msg);
+ Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME);
+ Eo *obj = _bridge_object_from_path(bridge, obj_path);
+ Eina_Bool enabled;
+ Eldbus_Message *ret = NULL;
+ Eina_Bool result = EINA_FALSE;
+
+ if (!eldbus_message_arguments_get(msg, "b", &enabled))
+ return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Invalid index type.");
+
+ ret = eldbus_message_method_return_new(msg);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL);
+
+ efl_access_object_listen_render_post_set(obj, enabled);
+
+ return ret;
+}
+//
+
static Eina_Bool
_ee_obscured_get(Eo *obj)
{
NULL, ELDBUS_ARGS({"(so)", "defaultLabelObject"}, {"u", "defaultLabelRole"},{"a{ss}", "attributes"}),
_accessible_default_label_info_get, 0},
//
+ //TIZEN_ONLY(20230220): Provide render post callback to client
+ { "SetListenPostRender", ELDBUS_ARGS({"b", "enabled"}), NULL, _accessible_set_listen_render_post, 0 },
+ //
{ NULL, NULL, NULL, NULL, 0 }
};
STATE_TYPE_SET(pd->window_signal_broadcast_mask, ATSPI_WINDOW_EVENT_RESIZE);
else if (!strcmp(tokens[1], "Restore"))
STATE_TYPE_SET(pd->window_signal_broadcast_mask, ATSPI_WINDOW_EVENT_RESTORE);
+ //TIZEN_ONLY(20230220): Add render post event
+ else if (!strcmp(tokens[1], "PostRender"))
+ STATE_TYPE_SET(pd->window_signal_broadcast_mask, ATSPI_WINDOW_EVENT_RENDER_POST);
+ //
}
end:
type = ATSPI_WINDOW_EVENT_DEACTIVATE;
else if (event->desc == EFL_ACCESS_WINDOW_EVENT_WINDOW_ACTIVATED)
type = ATSPI_WINDOW_EVENT_ACTIVATE;
+ //TIZEN_ONLY(20230220): Add render post event
+ else if (event->desc == EFL_ACCESS_WINDOW_EVENT_WINDOW_RENDER_POST)
+ type = ATSPI_WINDOW_EVENT_RENDER_POST;
+ //
else if (event->desc == EFL_ACCESS_WINDOW_EVENT_WINDOW_MAXIMIZED)
type = ATSPI_WINDOW_EVENT_MAXIMIZE;
else if (event->desc == EFL_ACCESS_WINDOW_EVENT_WINDOW_MINIMIZED)