Add <theme><fallbackAppIcon>

This commit adds <theme><fallbackAppIcon> that configures the icon name
to be used when lookups for an application icon is failed. Its default
value is set as 'labwc' which shows our labwc logo.
This commit is contained in:
tokyo4j 2025-01-12 16:52:37 +09:00
parent b832c07a44
commit b21859fd6b
5 changed files with 19 additions and 0 deletions

View file

@ -27,6 +27,10 @@ _create_buffer(struct scaled_scene_buffer *scaled_buffer, double scale)
} else if (self->app_id) {
img = desktop_entry_load_icon_from_app_id(self->server,
self->app_id, icon_size, scale);
if (!img) {
img = desktop_entry_load_icon(self->server,
rc.fallback_app_icon_name, icon_size, scale);
}
}
if (!img) {

View file

@ -1073,6 +1073,8 @@ entry(xmlNode *node, char *nodename, char *content)
xstrdup_replace(rc.theme_name, content);
} else if (!strcmp(nodename, "icon.theme")) {
xstrdup_replace(rc.icon_theme_name, content);
} else if (!strcasecmp(nodename, "fallbackAppIcon.theme")) {
xstrdup_replace(rc.fallback_app_icon_name, content);
} else if (!strcasecmp(nodename, "layout.titlebar.theme")) {
fill_title_layout(content);
} else if (!strcasecmp(nodename, "showTitle.titlebar.theme")) {
@ -1677,6 +1679,10 @@ post_processing(void)
load_default_mouse_bindings();
}
if (!rc.fallback_app_icon_name) {
rc.fallback_app_icon_name = xstrdup("labwc");
}
if (!rc.title_layout_loaded) {
#if HAVE_LIBSFDO
fill_title_layout("icon:iconify,max,close");
@ -1928,6 +1934,7 @@ rcxml_finish(void)
zfree(rc.font_osd.name);
zfree(rc.theme_name);
zfree(rc.icon_theme_name);
zfree(rc.fallback_app_icon_name);
zfree(rc.workspace_config.prefix);
zfree(rc.tablet.output_name);