e_hints: modify code for e_hints_aux_hint_add_with_pixmap 04/257204/2 accepted/tizen/unified/20210422.005317 submit/tizen/20210421.080150
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 21 Apr 2021 05:44:53 +0000 (14:44 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 21 Apr 2021 06:24:36 +0000 (15:24 +0900)
If there exist the aux_hint which has a same ID and its name is not same to the 3rd
parameter (name), then we replace its name and value to new name and value.

Change-Id: I383f45b3518fcbc97a09102c45fb9905eb2dee93

src/bin/e_hints.c

index 2d56dde..3febb76 100644 (file)
@@ -275,13 +275,33 @@ e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t id, const char *name, con
      {
         if (hint->id == id)
           {
-             if (strcmp(hint->val, val) != 0)
+             if (!e_util_strcmp(hint->hint, name))
                {
-                  ELOGF("COMP", "AUX_HINT |Change [pixmap] [%d:%s:%s -> %s]",
+                  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);
+                       eina_stringshare_del(hint->val);
+
+                       hint->val = eina_stringshare_add(val);
+                       hint->changed = EINA_TRUE;
+                       hint->deleted = EINA_FALSE;
+                       cdata->aux_hint.changed = 1;
+                    }
+               }
+             else
+               {
+                  // 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, val);
+                        id, hint->hint, hint->val, name, val);
+                  eina_stringshare_del(hint->hint);
                   eina_stringshare_del(hint->val);
 
+                  hint->hint = eina_stringshare_add(name);
                   hint->val = eina_stringshare_add(val);
                   hint->changed = EINA_TRUE;
                   hint->deleted = EINA_FALSE;