From 4eb33c84d2170ffa22dc70a33708c8464f2b8024 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Thu, 27 Oct 2022 18:32:01 +0900 Subject: [PATCH] e_client: add APIs for getting desk_zoom enable state We add APIs to get/set the enable state whether the ec is under running desk_zoom or not. - void e_client_desk_zoom_enable_set(E_Client *ec, Eina_Bool enable) - Eina_Bool e_client_desk_zoom_enable_get(E_Client *ec) Change-Id: I733d84fb0b96066577029aabe4724e9ce7e0ea09 --- src/bin/e_client.c | 14 ++++++++++++++ src/bin/e_client.h | 4 ++++ src/bin/e_desk.c | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 396e83c..8ec0f4b 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -8902,3 +8902,17 @@ e_client_resize_object_create_cb_set(E_Client_Resize_Object_Create_Cb cb) CRI("ATTEMPTING TO OVERWRITE EXISTING CLIENT RESIZE OBJECT CREATE HOOK!!!"); _e_client_resize_object_create_cb = cb; } + +EINTERN void +e_client_desk_zoom_enable_set(E_Client *ec, Eina_Bool enable) +{ + if (!ec) return; + ec->desk_zoom = enable; +} + +EINTERN Eina_Bool +e_client_desk_zoom_enable_get(E_Client *ec) +{ + if (!ec) return EINA_FALSE; + return ec->desk_zoom; +} diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 585b2c1..425604e 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -1053,6 +1053,7 @@ struct E_Client int x, y, w, h; } maximized_info; + Eina_Bool desk_zoom; }; #define e_client_focus_policy_click(ec) \ @@ -1318,6 +1319,9 @@ E_API E_Transient e_client_transient_policy_get(E_Client *ec); E_API void e_client_resize_object_create_cb_set(E_Client_Resize_Object_Create_Cb cb); +EINTERN void e_client_desk_zoom_enable_set(E_Client *ec, Eina_Bool enable); +EINTERN Eina_Bool e_client_desk_zoom_enable_get(E_Client *ec); + /** * Move window to coordinates that do not account client decorations yet. * diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index ad87bb9..42775f4 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -1849,6 +1849,11 @@ _e_desk_client_zoom(E_Client *ec, double zoomx, double zoomy, Evas_Coord cx, Eva if (e_object_is_del(E_OBJECT(ec))) return; if (ec->is_cursor) return; + if ((zoomx == 1.0) && (zoomy == 1.0)) + e_client_desk_zoom_enable_set(ec, EINA_FALSE); + else + e_client_desk_zoom_enable_set(ec, EINA_TRUE); + transformed = e_client_transform_core_enable_get(ec); if (transformed) -- 2.7.4