From: Doyoun Kang Date: Fri, 19 Jul 2019 01:34:49 +0000 (+0900) Subject: e_desk/e_comp_wl_shell: apply zoom when ec is mapped X-Git-Tag: submit/tizen/20190725.044739~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1157b51abc979a14ee8159489c7dff7aa2d0f405;p=platform%2Fupstream%2Fenlightenment.git e_desk/e_comp_wl_shell: apply zoom when ec is mapped There was a flickering issue using e_desk_zoom_set when a small window was shown. We added a code to apply zomm before mapping window. Change-Id: I4331f17516ef68137cc320ce911e21790495eb8f --- diff --git a/src/bin/e_comp_wl_shell.c b/src/bin/e_comp_wl_shell.c index 4455d1ea00..021fba9998 100644 --- a/src/bin/e_comp_wl_shell.c +++ b/src/bin/e_comp_wl_shell.c @@ -738,6 +738,9 @@ _e_shell_client_map_common_pre(E_Client *ec) /* unset previous content */ e_comp_object_content_unset(ec->frame); + /* apply zoom */ + e_desk_client_zoom_apply(ec->desk, ec); + /* map this surface if needed */ ec->visible = EINA_TRUE; evas_object_show(ec->frame); diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index ba5471f515..fbb835b7e2 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -1077,6 +1077,28 @@ e_desk_smart_member_del(Evas_Object *obj) evas_object_smart_member_del(obj); } +EINTERN void +e_desk_client_zoom_apply(E_Desk *desk, E_Client *ec) +{ + if (!e_config->use_desk_smart_obj) + return; + + E_OBJECT_CHECK(desk); + E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); + + E_OBJECT_CHECK(ec); + E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE); + + E_DESK_SMART_DATA_GET_OR_RETURN(desk->smart_obj, sd); + + if (sd->zoom.enabled) + { + _e_desk_client_zoom(ec, + sd->zoom.ratio_x, sd->zoom.ratio_y, + sd->zoom.cord_x, sd->zoom.cord_y); + } +} + static void _e_desk_free(E_Desk *desk) { diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h index 07ee36c38c..17f6a51b45 100644 --- a/src/bin/e_desk.h +++ b/src/bin/e_desk.h @@ -118,6 +118,8 @@ E_API void e_desk_smart_member_del(Evas_Object *obj); E_API void e_desk_client_add(E_Desk *desk, E_Client *ec); E_API void e_desk_client_del(E_Desk *desk, E_Client *ec); +EINTERN void e_desk_client_zoom_apply(E_Desk *desk, E_Client *ec); + extern E_API int E_EVENT_DESK_SHOW; extern E_API int E_EVENT_DESK_BEFORE_SHOW; extern E_API int E_EVENT_DESK_AFTER_SHOW;