e_client: add APIs for getting desk_zoom enable state 78/283578/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 27 Oct 2022 09:32:01 +0000 (18:32 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 31 Oct 2022 01:44:13 +0000 (10:44 +0900)
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
src/bin/e_client.h
src/bin/e_desk.c

index 396e83c..8ec0f4b 100644 (file)
@@ -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;
+}
index 585b2c1..425604e 100644 (file)
@@ -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.
  *
index ad87bb9..42775f4 100644 (file)
@@ -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)