hints: Use E_Client for aux hint 71/323271/1
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 25 Apr 2025 02:01:35 +0000 (11:01 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 25 Apr 2025 04:38:52 +0000 (13:38 +0900)
This patch replaces the use of E_Pixmap with E_Client for managing
auxiliary hints.

The previous implementation used E_Pixmap because wl_surface was once
mapped to E_Pixmap. However, since E_Client is the corresponding object
of wl_surface, E_Pixmap is no longer the appropriate object for managing
aux hints.

Change-Id: Id9d32de6fc2130a94f6af96132cea46f0141b69e

src/bin/windowmgr/e_hints.c

index 8766336fe7ff4c9fba0c9412c91ebe514b54bbaf..84e6687b32a870eddf1902f2d1a0140e1b6f6263 100644 (file)
@@ -9,15 +9,14 @@
 static Eina_List *aux_hints_supported = NULL;
 
 static Eina_Bool
-_e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t id, const char *name, const char *val)
+_e_hints_aux_hint_add(E_Client *ec, int32_t id, const char *name, const char *val)
 {
    E_Comp_Wl_Client_Data *cdata;
    Eina_Bool found = EINA_FALSE;
    E_Comp_Wl_Aux_Hint *hint;
    Eina_List *l;
 
-   if (!cp) return EINA_FALSE;
-   cdata = (E_Comp_Wl_Client_Data*)e_pixmap_cdata_get(cp);
+   cdata = e_client_cdata_get(ec);
    if (!cdata) return EINA_FALSE;
 
    EINA_LIST_FOREACH(cdata->aux_hint.hints, l, hint)
@@ -28,9 +27,8 @@ _e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t id, const char *name, co
                {
                   if (strcmp(hint->val, val) != 0)
                     {
-                       ELOGF("COMP", "AUX_HINT |Change [pixmap] [%d:%s:%s -> %s]",
-                             e_pixmap_client_get(cp),
-                             id, hint->hint, hint->val, val);
+                       ELOGF("COMP", "AUX_HINT |Change [%d:%s:%s -> %s]",
+                             ec, id, hint->hint, hint->val, val);
                        eina_stringshare_del(hint->val);
 
                        hint->val = eina_stringshare_add(val);
@@ -44,9 +42,8 @@ _e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t id, const char *name, co
                   // hint's name is not same,
                   // replace hint's name and value
 
-                  ELOGF("COMP", "AUX_HINT |Replace [pixmap] [%d:%s:%s -> %s:%s]",
-                        e_pixmap_client_get(cp),
-                        id, hint->hint, hint->val, name, val);
+                  ELOGF("COMP", "AUX_HINT |Replace [%d:%s:%s -> %s:%s]",
+                        ec, id, hint->hint, hint->val, name, val);
                   eina_stringshare_del(hint->hint);
                   eina_stringshare_del(hint->val);
 
@@ -75,23 +72,21 @@ _e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t id, const char *name, co
         hint->deleted = EINA_FALSE;
         cdata->aux_hint.hints = eina_list_append(cdata->aux_hint.hints, hint);
         cdata->aux_hint.changed = 1;
-        ELOGF("COMP", "AUX_HINT |Add [%d:%s:%s]", e_pixmap_client_get(cp),
-              id, hint->hint, hint->val);
+        ELOGF("COMP", "AUX_HINT |Add [%d:%s:%s]", ec, id, hint->hint, hint->val);
      }
 
    return EINA_TRUE;
 }
 
-E_API Eina_Bool
-e_hints_aux_hint_change_with_pixmap(E_Pixmap *cp, int32_t id, const char *val)
+static Eina_Bool
+_e_hints_aux_hint_change(E_Client *ec, int32_t id, const char *val)
 {
    E_Comp_Wl_Client_Data *cdata;
    Eina_List *l;
    E_Comp_Wl_Aux_Hint *hint;
    Eina_Bool found = EINA_FALSE;
 
-   if (!cp) return EINA_FALSE;
-   cdata = (E_Comp_Wl_Client_Data*)e_pixmap_cdata_get(cp);
+   cdata = e_client_cdata_get(ec);
    if (!cdata) return EINA_FALSE;
 
    EINA_LIST_FOREACH(cdata->aux_hint.hints, l, hint)
@@ -100,7 +95,7 @@ e_hints_aux_hint_change_with_pixmap(E_Pixmap *cp, int32_t id, const char *val)
           {
              if ((hint->val) && (strcmp(hint->val, val) != 0))
                {
-                  ELOGF("COMP", "AUX_HINT |Change [%d:%s:%s -> %s]", e_pixmap_client_get(cp),
+                  ELOGF("COMP", "AUX_HINT |Change [%d:%s:%s -> %s]", ec,
                         id, hint->hint, hint->val, val);
                   eina_stringshare_del(hint->val);
                   hint->val = eina_stringshare_add(val);
@@ -122,23 +117,33 @@ e_hints_aux_hint_change_with_pixmap(E_Pixmap *cp, int32_t id, const char *val)
    return EINA_FALSE;
 }
 
+E_API Eina_Bool
+e_hints_aux_hint_change_with_pixmap(E_Pixmap *cp, int32_t id, const char *val)
+{
+   E_Client *ec;
+
+   ec = e_pixmap_client_get(cp);
+   if (!ec) return EINA_FALSE;
+
+   return _e_hints_aux_hint_change(ec, id, val);
+}
+
 static Eina_Bool
-_e_hints_aux_hint_del_with_pixmap(E_Pixmap *cp, int32_t id)
+_e_hints_aux_hint_del(E_Client *ec, int32_t id)
 {
    E_Comp_Wl_Client_Data *cdata;
    Eina_List *l, *ll;
    E_Comp_Wl_Aux_Hint *hint;
    int res = -1;
 
-   if (!cp) return EINA_FALSE;
-   cdata = (E_Comp_Wl_Client_Data*)e_pixmap_cdata_get(cp);
+   cdata = e_client_cdata_get(ec);
    if (!cdata) return EINA_FALSE;
 
    EINA_LIST_FOREACH_SAFE(cdata->aux_hint.hints, l, ll, hint)
      {
         if (hint->id == id)
           {
-             ELOGF("COMP", "AUX_HINT |Del (pending) [%d:%s:%s]", e_pixmap_client_get(cp), id, hint->hint, hint->val);
+             ELOGF("COMP", "AUX_HINT |Del (pending) [%d:%s:%s]", ec, id, hint->hint, hint->val);
              hint->changed = EINA_TRUE;
              hint->deleted = EINA_TRUE;
              cdata->aux_hint.changed = 1;
@@ -154,15 +159,14 @@ _e_hints_aux_hint_del_with_pixmap(E_Pixmap *cp, int32_t id)
 }
 
 static const char *
-_e_hints_aux_hint_value_get_with_pixmap(E_Pixmap *cp, const char *name)
+_e_hints_aux_hint_value_get(E_Client *ec, const char *name)
 {
    E_Comp_Wl_Client_Data *cdata;
    Eina_List *l;
    E_Comp_Wl_Aux_Hint *hint;
    const char *res = NULL;
 
-   if (!cp) return NULL;
-   cdata = (E_Comp_Wl_Client_Data*)e_pixmap_cdata_get(cp);
+   cdata = e_client_cdata_get(ec);
    if (!cdata) return NULL;
 
    EINA_LIST_REVERSE_FOREACH(cdata->aux_hint.hints, l, hint)
@@ -240,26 +244,26 @@ E_API Eina_Bool
 e_hints_aux_hint_add(E_Client *ec, int32_t id, const char *name, const char *val)
 {
    if (!ec) return EINA_FALSE;
-   return _e_hints_aux_hint_add_with_pixmap(ec->pixmap, id, name, val);
+   return _e_hints_aux_hint_add(ec, id, name, val);
 }
 
 EINTERN Eina_Bool
 e_hints_aux_hint_change(E_Client *ec, int32_t id, const char *val)
 {
    if (!ec) return EINA_FALSE;
-   return e_hints_aux_hint_change_with_pixmap(ec->pixmap, id, val);
+   return _e_hints_aux_hint_change(ec, id, val);
 }
 
 E_API Eina_Bool
 e_hints_aux_hint_del(E_Client *ec, int32_t id)
 {
    if (!ec) return EINA_FALSE;
-   return _e_hints_aux_hint_del_with_pixmap(ec->pixmap, id);
+   return _e_hints_aux_hint_del(ec, id);
 }
 
 E_API const char *
 e_hints_aux_hint_value_get(E_Client *ec, const char *name)
 {
    if (!ec) return NULL;
-   return _e_hints_aux_hint_value_get_with_pixmap(ec->pixmap, name);
+   return _e_hints_aux_hint_value_get(ec, name);
 }