diff options
Diffstat (limited to 'source/dialogs/window.c')
-rw-r--r-- | source/dialogs/window.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/dialogs/window.c b/source/dialogs/window.c index e6691401..d031d5d1 100644 --- a/source/dialogs/window.c +++ b/source/dialogs/window.c @@ -56,6 +56,8 @@ #include "timings.h" +#include "rofi-icon-fetcher.h" + #define WINLIST 32 #define CLIENTSTATE 10 @@ -108,6 +110,7 @@ typedef struct char *wmdesktopstr; cairo_surface_t *icon; gboolean icon_checked; + uint32_t icon_fetch_uid; } client; // window lists @@ -910,6 +913,13 @@ static cairo_surface_t *_get_icon ( const Mode *sw, unsigned int selected_line, c->icon = get_net_wm_icon ( rmpd->ids->array[selected_line], size ); c->icon_checked = TRUE; } + if ( c->icon == NULL && c->class ){ + if ( c->icon_fetch_uid > 0){ + return rofi_icon_fetcher_get ( c->icon_fetch_uid ); + } + c->icon_fetch_uid = rofi_icon_fetcher_query ( c->class, size); + + } return c->icon; } |