e_desk/e_comp_wl_shell: apply zoom when ec is mapped 10/210410/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Fri, 19 Jul 2019 01:34:49 +0000 (10:34 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 19 Jul 2019 01:34:53 +0000 (10:34 +0900)
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

src/bin/e_comp_wl_shell.c
src/bin/e_desk.c
src/bin/e_desk.h

index 4455d1ea002f55764a2a659e18b786eec9b22b50..021fba9998bf38f73997f59485cbba81945dadee 100644 (file)
@@ -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);
index ba5471f5159ddb603c56e61c99bfd9c19d29c077..fbb835b7e2abdfee7afaa42954d08dc0832c04bf 100644 (file)
@@ -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)
 {
index 07ee36c38c7eabf8185b178cd3feb7be2e150187..17f6a51b45db3885cb6f7b1982d1135ffba3dc60 100644 (file)
@@ -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;