This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository efl.

View the commit online.

commit 156660a56b9d53b7748b6beef8b4b79dd5970dbf
Author: Carsten Haitzler <[email protected]>
AuthorDate: Wed Feb 15 20:33:33 2023 +0000

    elm - icon - policy change. use theme defined std icon FIRST always
    
    if you set a standard named icon - look in the theme first for it as
    this should match the look of the theme, THEN look in the selected
    icon theme. this fixes blank icons with selecting and icon theme in
    many situations and fixes blank cons when "use elm icon theme" is
    selected.
    
    @fix
---
 src/lib/elementary/elm_icon.c | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c
index b6aeff0135..5894c9bb79 100644
--- a/src/lib/elementary/elm_icon.c
+++ b/src/lib/elementary/elm_icon.c
@@ -423,27 +423,37 @@ _internal_elm_icon_standard_set(Evas_Object *obj,
                        Eina_Bool *fdo)
 {
    char *tmp;
+   const char *stdtmp;
    Eina_Bool ret = EINA_FALSE;
 
    ELM_ICON_DATA_GET(obj, sd);
 
    /* try locating the icon using the specified theme */
-   if (!strcmp(ELM_CONFIG_ICON_THEME_ELEMENTARY, elm_config_icon_theme_get()))
+   stdtmp = sd->stdicon;
+   sd->stdicon = NULL;
+   ret = _icon_standard_set(obj, name);
+   sd->stdicon = stdtmp;
+   if (ret && fdo) *fdo = EINA_FALSE;
+   if (!ret)
      {
-        ret = _icon_standard_set(obj, name);
-        if (ret && fdo) *fdo = EINA_FALSE;
-
-        if (!ret)
+        /* try locating the icon using the specified theme */
+        if (!strcmp(ELM_CONFIG_ICON_THEME_ELEMENTARY, elm_config_icon_theme_get()))
+          {
+             ret = _icon_standard_set(obj, name);
+             if (ret && fdo) *fdo = EINA_FALSE;
+
+             if (!ret)
+               {
+                  ret = _icon_freedesktop_set(obj, "hicolor", name, _icon_size_min_get(obj));
+                  if (ret && fdo) *fdo = EINA_TRUE;
+               }
+          }
+        else
           {
-             ret = _icon_freedesktop_set(obj, "hicolor", name, _icon_size_min_get(obj));
+             ret = _icon_freedesktop_set(obj, NULL, name, _icon_size_min_get(obj));
              if (ret && fdo) *fdo = EINA_TRUE;
           }
      }
-   else
-     {
-        ret = _icon_freedesktop_set(obj, NULL, name, _icon_size_min_get(obj));
-        if (ret && fdo) *fdo = EINA_TRUE;
-     }
 
    if (ret)
      {

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to