e_client: add E_Iconified_Type 93/280393/1 accepted/tizen/unified/20220830.032644 submit/tizen/20220829.110346
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 29 Aug 2022 09:51:45 +0000 (18:51 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 29 Aug 2022 10:32:32 +0000 (19:32 +0900)
New features for handling the iconic window's iconified type.
- E_Iconified_Type enumeration
- E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
- E_API E_Iconified_Type e_client_iconified_type_get(E_Client *ec);

Change-Id: I65204283ad2704addce2b3628227cf6aa679ca29

src/bin/e_client.c
src/bin/e_client.h

index 010247d70367c22f17774194c2afadb9386cb99c..30f1984f67d48a2f4713a5ce710fae828d79fe7f 100644 (file)
@@ -6522,6 +6522,20 @@ e_client_uniconify(E_Client *ec)
    TRACE_DS_END();
 }
 
+E_API void
+e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type)
+{
+   if (!ec) return;
+   ec->exp_iconify.type = type;
+}
+
+E_API E_Iconified_Type
+e_client_iconified_type_get(E_Client *ec)
+{
+   if (!ec) return E_ICONIFIED_TYPE_NONE;
+   return ec->exp_iconify.type;
+}
+
 ///////////////////////////////////////
 
 E_API void
index 90279e3f233b577ce05b828f3aa0efe67f80ab02..0f0e77d66ec47b0ee03414f828ce8f1b737f4470 100644 (file)
@@ -198,6 +198,13 @@ typedef enum _E_Indicator_Opacity_Mode
    E_INDICATOR_OPACITY_MODE_BG_TRANSPARENT,
 } E_Indicator_Opacity_Mode;
 
+typedef enum _E_Iconified_Type
+{
+   E_ICONIFIED_TYPE_NONE              = 0, // not iconified
+   E_ICONIFIED_TYPE_VISIBILITY        = 1, // iconified by visibility
+   E_ICONIFIED_TYPE_ICONIFY_BY_CLIENT = 2, // iconified by iconify request
+} E_Iconified_Type;
+
 typedef struct E_Client E_Client;
 
 typedef struct E_Event_Client E_Event_Client;
@@ -885,13 +892,14 @@ struct E_Client
 
    struct
    {
-      unsigned char by_client : 1;
+      unsigned char by_client : 1; // will be deprecated
       unsigned char not_raise : 1;
       unsigned char skip_iconify : 1;
       unsigned char skip_by_remote : 1;    // skip iconify by remote surface client
       unsigned char deiconify_update : 1;  // wait client render if deiconify_update is 1
       unsigned char buffer_flush : 1;      // 0: no flush, 1: flush buffer when iconify
       unsigned char last_sent_iconic : 1;  // 0: uniconify, 1: iconify
+      E_Iconified_Type type;
    } exp_iconify;
 
    struct
@@ -1156,6 +1164,8 @@ E_API void e_client_fullscreen(E_Client *ec, E_Fullscreen policy);
 E_API void e_client_unfullscreen(E_Client *ec);
 E_API void e_client_iconify(E_Client *ec);
 E_API void e_client_uniconify(E_Client *ec);
+E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
+E_API E_Iconified_Type e_client_iconified_type_get(E_Client *ec);
 E_API void e_client_urgent_set(E_Client *ec, Eina_Bool urgent);
 E_API void e_client_stick(E_Client *ec);
 E_API void e_client_unstick(E_Client *ec);