diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c index 7e32f13f7..fe008bc45 100644 --- a/src/modules/luncher/bar.c +++ b/src/modules/luncher/bar.c @@ -1159,9 +1159,15 @@ _bar_cb_client_remove(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_Clie { snprintf(ori, sizeof(ori), "e,state,off,%s", _bar_location_get(inst)); elm_layout_signal_emit(ic->o_layout, ori, "e"); + if (ic->preview) + _bar_icon_preview_hide(ic); if (!ic->in_order) _bar_icon_del(inst, ic); } + else if (ic->preview) + { + _bar_icon_preview_show(ic); + } } } return ECORE_CALLBACK_RENEW; @@ -1202,9 +1208,15 @@ _bar_cb_exec_del(void *data EINA_UNUSED, int type EINA_UNUSED, E_Exec_Instance * { snprintf(ori, sizeof(ori), "e,state,off,%s", _bar_location_get(inst)); elm_layout_signal_emit(ic->o_layout, ori, "e"); + if (ic->preview) + _bar_icon_preview_hide(ic); if (!ic->in_order) _bar_icon_del(inst, ic); } + else if (ic->preview) + { + _bar_icon_preview_show(ic); + } } } return ECORE_CALLBACK_RENEW; @@ -1303,6 +1315,8 @@ _bar_cb_exec_client_prop(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_C ic->clients = eina_list_remove(ic->clients, ev->ec); if (!eina_list_count(ic->execs) && !eina_list_count(ic->clients)) { + if (ic->preview) + _bar_icon_preview_hide(ic); if (!ic->in_order) _bar_icon_del(inst, ic); else @@ -1311,6 +1325,10 @@ _bar_cb_exec_client_prop(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_C elm_layout_signal_emit(ic->o_layout, ori, "e"); } } + else if (ic->preview) + { + _bar_icon_preview_show(ic); + } } } return ECORE_CALLBACK_RENEW;