forked from enlightenment/enlightenment
Luncher: Be aware when a ctxpopup has been dismissed but not yet deleted.
This commit is contained in:
parent
0493abf457
commit
49c3b1ab9b
|
@ -384,6 +384,7 @@ _bar_icon_preview_hide(void *data)
|
|||
|
||||
E_FREE_FUNC(ic->preview_box, evas_object_del);
|
||||
elm_ctxpopup_dismiss(ic->preview);
|
||||
ic->preview_dismissed = EINA_TRUE;
|
||||
current_preview = NULL;
|
||||
current_preview_menu = EINA_FALSE;
|
||||
ic->active = EINA_FALSE;
|
||||
|
@ -739,14 +740,14 @@ _bar_icon_preview_show(void *data)
|
|||
|
||||
orient = e_gadget_site_orient_get(e_gadget_site_get(ic->inst->o_main));
|
||||
|
||||
if (current_preview)
|
||||
if (current_preview && (current_preview != ic->preview))
|
||||
_bar_icon_preview_hide(evas_object_data_get(current_preview, "icon"));
|
||||
if (ic->preview && !ic->preview_dismissed)
|
||||
_bar_icon_preview_hide(ic);
|
||||
ic->preview_dismissed = EINA_FALSE;
|
||||
if (!eina_list_count(ic->execs) && !eina_list_count(ic->clients))
|
||||
return EINA_FALSE;
|
||||
|
||||
if (ic->preview)
|
||||
_bar_icon_preview_hide(ic);
|
||||
|
||||
ic->preview = elm_ctxpopup_add(e_comp->elm);
|
||||
elm_object_style_set(ic->preview, "noblock");
|
||||
evas_object_size_hint_min_set(ic->preview, ic->inst->size, ic->inst->size);
|
||||
|
@ -910,6 +911,7 @@ _bar_icon_add(Instance *inst, Efreet_Desktop *desktop, E_Client *non_desktop_cli
|
|||
ic->mouse_out_timer = NULL;
|
||||
ic->active = EINA_FALSE;
|
||||
ic->starting = EINA_FALSE;
|
||||
ic->preview_dismissed = EINA_FALSE;
|
||||
ic->exec = NULL;
|
||||
|
||||
ic->o_layout = elm_layout_add(inst->o_icon_con);
|
||||
|
|
|
@ -73,6 +73,7 @@ struct _Icon
|
|||
Eina_Bool in_order;
|
||||
Eina_Bool active;
|
||||
Eina_Bool starting;
|
||||
Eina_Bool preview_dismissed;
|
||||
struct
|
||||
{
|
||||
unsigned char start : 1;
|
||||
|
|
Loading…
Reference in New Issue