From 6b384d023e533b8bd89ce81cd5844bf50d1a1cac Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Mon, 14 Nov 2016 11:47:49 +0900 Subject: [PATCH] [accessibility][screen-reader] make widget accessible Change-Id: I2db8f30ae410aba654b3559e19f510f938ed023f --- src/widget_app.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/widget_app.c b/src/widget_app.c index 80d9cb8..374e437 100755 --- a/src/widget_app.c +++ b/src/widget_app.c @@ -1346,6 +1346,14 @@ EXPORT_API const char *widget_app_get_id(widget_context_h context) return context->id; } +static void _win_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + /* Remove data used in accessibility */ + char *plug_id; + plug_id = evas_object_data_del(obj, "___PLUGID"); + free(plug_id); +} + EXPORT_API int widget_app_get_elm_win(widget_context_h context, Evas_Object **win) { @@ -1353,6 +1361,7 @@ EXPORT_API int widget_app_get_elm_win(widget_context_h context, Evas_Object *ret_win; Ecore_Wl_Window *wl_win; struct wl_surface *surface; + char buffer[256]; if (!_is_widget_feature_enabled()) { _E("not supported"); /* LCOV_EXCL_LINE */ @@ -1390,6 +1399,11 @@ EXPORT_API int widget_app_get_elm_win(widget_context_h context, cxt->win = ret_win; cxt->win_id = ecore_wl_window_id_get(wl_win); + /* Set data to use in accessibility */ + snprintf(buffer, sizeof(buffer), "%s:%d", cxt->id, getpid()); + evas_object_data_set(ret_win, "___PLUGID", strdup(buffer)); + evas_object_event_callback_add(ret_win, EVAS_CALLBACK_DEL, _win_del_cb, NULL); + _D("window created: %d", cxt->win_id); return WIDGET_ERROR_NONE; -- 2.7.4