Skip to content

Commit

Permalink
swaybar: use KDE's SNI IconThemePath property
Browse files Browse the repository at this point in the history
  • Loading branch information
ianyfan committed Dec 30, 2018
1 parent 2d40ffd commit f764806
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/swaybar/tray/item.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ struct swaybar_sni {
list_t *attention_icon_pixmap; // struct swaybar_pixmap *
bool item_is_menu;
char *menu;
char *icon_theme_path; // non-standard KDE property
};

struct swaybar_sni *create_sni(char *id, struct swaybar_tray *tray);
Expand Down
5 changes: 5 additions & 0 deletions swaybar/tray/item.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ struct swaybar_sni *create_sni(char *id, struct swaybar_tray *tray) {
sni->service = strndup(id, path_ptr - id);
sni->path = strdup(path_ptr);
sni->interface = "org.kde.StatusNotifierItem";
sni_get_property_async(sni, "IconThemePath", "s", &sni->icon_theme_path);
}

// Ignored: Category, Id, Title, WindowId, OverlayIconName,
Expand Down Expand Up @@ -353,6 +354,10 @@ uint32_t render_sni(cairo_t *cairo, struct swaybar_output *output, double *x,
char *icon_path = find_icon(sni->tray->themes, sni->tray->basedirs,
icon_name, ideal_size, output->bar->config->icon_theme,
&sni->min_size, &sni->max_size);
if (!icon_path && sni->icon_theme_path) {
icon_path = find_icon_in_dir(icon_name, sni->icon_theme_path,
&sni->min_size, &sni->max_size);
}
if (icon_path) {
cairo_surface_destroy(sni->icon);
sni->icon = load_background_image(icon_path);
Expand Down

0 comments on commit f764806

Please sign in to comment.