Enlightenment: Fix luncher to not duplicate clients who report as both having and not having a .desktop.

This commit is contained in:
Stephen 'Okra' Houston 2017-01-10 15:45:13 -06:00
parent 3a7509fd38
commit cf1d083b38
1 changed files with 8 additions and 3 deletions

View File

@ -4,6 +4,7 @@ static Evas_Object *current_preview;
static Eina_Bool current_preview_menu; static Eina_Bool current_preview_menu;
static Eina_Bool _bar_icon_preview_show(void *data); static Eina_Bool _bar_icon_preview_show(void *data);
static Eina_Bool _bar_icon_preview_hide(void *data); static Eina_Bool _bar_icon_preview_hide(void *data);
static void _bar_icon_del(Instance *inst, Icon *ic);
static void static void
_bar_aspect(Instance *inst) _bar_aspect(Instance *inst)
@ -143,7 +144,7 @@ _bar_location_get(Instance *inst)
static Icon * static Icon *
_bar_icon_match(Instance *inst, E_Client *ec) _bar_icon_match(Instance *inst, E_Client *ec)
{ {
Icon *ic = NULL; Icon *ic = NULL, *ic2 = NULL;
Eina_Bool has_desktop = EINA_FALSE; Eina_Bool has_desktop = EINA_FALSE;
if (ec->exe_inst) if (ec->exe_inst)
@ -151,8 +152,12 @@ _bar_icon_match(Instance *inst, E_Client *ec)
if (ec->exe_inst->desktop) if (ec->exe_inst->desktop)
has_desktop = EINA_TRUE; has_desktop = EINA_TRUE;
} }
if (has_desktop) if (has_desktop)
ic = eina_hash_find(inst->icons_desktop_hash, ec->exe_inst->desktop->orig_path); {
ic = eina_hash_find(inst->icons_desktop_hash, ec->exe_inst->desktop->orig_path);
if ((ic2 = eina_hash_find(inst->icons_clients_hash, ec)))
_bar_icon_del(inst, ic2);
}
if (has_desktop && !ic) if (has_desktop && !ic)
ic = eina_hash_find(inst->icons_clients_hash, ec); ic = eina_hash_find(inst->icons_clients_hash, ec);
if (!ic) if (!ic)