forked from enlightenment/efl
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
This commit is contained in:
parent
34c5c1615d
commit
7d22469674
|
@ -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_freedesktop_set(obj, "hicolor", name, _icon_size_min_get(obj));
|
||||
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, 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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue