app: Use StIcon as icon_texture when loading from a GIcon
Themes - namely the HighContrast one - may now request symbolic icons rather than fullcolor ones. In order to have recoloring work as expected in that case, we will need a theme node to pick up colors from - using an StIcon instead of manually loading a texture from the cache gives us that for free, so do that. https://bugzilla.gnome.org/show_bug.cgi?id=740447
This commit is contained in:
parent
2940ef07e9
commit
0acc7ed4c2
@ -209,27 +209,23 @@ shell_app_create_icon_texture (ShellApp *app,
|
|||||||
int size)
|
int size)
|
||||||
{
|
{
|
||||||
GIcon *icon;
|
GIcon *icon;
|
||||||
gint scale;
|
|
||||||
ClutterActor *ret;
|
ClutterActor *ret;
|
||||||
ShellGlobal *global;
|
|
||||||
StThemeContext *context;
|
|
||||||
|
|
||||||
global = shell_global_get ();
|
|
||||||
context = st_theme_context_get_for_stage (shell_global_get_stage (global));
|
|
||||||
g_object_get (context, "scale-factor", &scale, NULL);
|
|
||||||
ret = NULL;
|
|
||||||
|
|
||||||
if (app->info == NULL)
|
if (app->info == NULL)
|
||||||
return window_backed_app_get_icon (app, size);
|
return window_backed_app_get_icon (app, size);
|
||||||
|
|
||||||
|
ret = st_icon_new ();
|
||||||
|
st_icon_set_icon_size (ST_ICON (ret), size);
|
||||||
|
|
||||||
icon = g_app_info_get_icon (G_APP_INFO (app->info));
|
icon = g_app_info_get_icon (G_APP_INFO (app->info));
|
||||||
if (icon != NULL)
|
if (icon != NULL)
|
||||||
ret = st_texture_cache_load_gicon (st_texture_cache_get_default (), NULL, icon, size, scale);
|
{
|
||||||
|
st_icon_set_gicon (ST_ICON (ret), icon);
|
||||||
if (ret == NULL)
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
icon = g_themed_icon_new ("application-x-executable");
|
icon = g_themed_icon_new ("application-x-executable");
|
||||||
ret = st_texture_cache_load_gicon (st_texture_cache_get_default (), NULL, icon, size, scale);
|
st_icon_set_gicon (ST_ICON (ret), icon);
|
||||||
g_object_unref (icon);
|
g_object_unref (icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user