bugfix: only remove an ibar no-order icon if ALL icon's clients are skip

T953
This commit is contained in:
Mike Blumenkrantz 2014-02-14 15:58:49 -05:00
parent de7d818f99
commit 6da74c5f06
1 changed files with 8 additions and 2 deletions

View File

@ -2435,11 +2435,17 @@ _ibar_cb_client_prop(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Client_Prop
{ {
IBar *b; IBar *b;
Eina_List *l; Eina_List *l;
Eina_Bool skip; E_Client *ec;
Eina_Bool skip = EINA_TRUE;
if (e_client_util_ignored_get(ev->ec) || (!ev->ec->exe_inst) || (!ev->ec->exe_inst->desktop)) return ECORE_CALLBACK_RENEW; if (e_client_util_ignored_get(ev->ec) || (!ev->ec->exe_inst) || (!ev->ec->exe_inst->desktop)) return ECORE_CALLBACK_RENEW;
if (!(ev->property & E_CLIENT_PROPERTY_NETWM_STATE)) return ECORE_CALLBACK_RENEW; if (!(ev->property & E_CLIENT_PROPERTY_NETWM_STATE)) return ECORE_CALLBACK_RENEW;
skip = ev->ec->netwm.state.skip_taskbar; EINA_LIST_FOREACH(ev->ec->exe_inst->clients, l, ec)
if (!ec->netwm.state.skip_taskbar)
{
skip = EINA_FALSE;
break;
}
EINA_LIST_FOREACH(ibars, l, b) EINA_LIST_FOREACH(ibars, l, b)
{ {
IBar_Icon *ic; IBar_Icon *ic;