Enlightenment - Luncher Gadget - Show preview immediately for icons that have iconified windows.

This fixes T4806
This commit is contained in:
Stephen 'Okra' Houston 2017-01-11 13:20:01 -06:00
parent 2565055eeb
commit bae6700f8c
1 changed files with 26 additions and 0 deletions

View File

@ -19,6 +19,29 @@ _bar_aspect(Instance *inst)
}
}
static Eina_Bool
_bar_check_for_iconic(Icon *ic)
{
Eina_List *l, *ll, *clients = NULL;
E_Client *ec;
E_Exec_Instance *ex;
EINA_LIST_FOREACH(ic->execs, l, ex)
{
EINA_LIST_FOREACH(ex->clients, ll, ec)
clients = eina_list_append(clients, ec);
}
EINA_LIST_FOREACH(ic->clients, l, ec)
clients = eina_list_append(clients, ec);
EINA_LIST_FREE(clients, ec)
{
if (ec->iconic)
return EINA_TRUE;
}
return EINA_FALSE;
}
static Eina_Bool
_bar_check_for_duplicates(Icon *ic, E_Client *dupe)
{
@ -887,6 +910,8 @@ _bar_icon_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *even
clients = EINA_TRUE;
if (clients && current_preview && !current_preview_menu)
_bar_icon_preview_show(ic);
else if (_bar_check_for_iconic(ic))
_bar_icon_preview_show(ic);
else if (clients && !current_preview)
ic->mouse_in_timer = ecore_timer_add(0.3, _bar_icon_preview_show, ic);
}
@ -1798,6 +1823,7 @@ _bar_iconify_start(void *data, Evas_Object *obj, const char *signal EINA_UNUSED)
ic = _bar_icon_match(inst, ec);
if (!ic) return EINA_FALSE;
ec->layer_block = 1;
evas_object_layer_set(ec->frame, E_LAYER_CLIENT_PRIO);
evas_object_geometry_get(ic->o_layout, &ox, &oy, &ow, &oh);