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);
|
E_FREE_FUNC(ic->preview_box, evas_object_del);
|
||||||
elm_ctxpopup_dismiss(ic->preview);
|
elm_ctxpopup_dismiss(ic->preview);
|
||||||
|
ic->preview_dismissed = EINA_TRUE;
|
||||||
current_preview = NULL;
|
current_preview = NULL;
|
||||||
current_preview_menu = EINA_FALSE;
|
current_preview_menu = EINA_FALSE;
|
||||||
ic->active = 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));
|
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"));
|
_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))
|
if (!eina_list_count(ic->execs) && !eina_list_count(ic->clients))
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
||||||
if (ic->preview)
|
|
||||||
_bar_icon_preview_hide(ic);
|
|
||||||
|
|
||||||
ic->preview = elm_ctxpopup_add(e_comp->elm);
|
ic->preview = elm_ctxpopup_add(e_comp->elm);
|
||||||
elm_object_style_set(ic->preview, "noblock");
|
elm_object_style_set(ic->preview, "noblock");
|
||||||
evas_object_size_hint_min_set(ic->preview, ic->inst->size, ic->inst->size);
|
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->mouse_out_timer = NULL;
|
||||||
ic->active = EINA_FALSE;
|
ic->active = EINA_FALSE;
|
||||||
ic->starting = EINA_FALSE;
|
ic->starting = EINA_FALSE;
|
||||||
|
ic->preview_dismissed = EINA_FALSE;
|
||||||
ic->exec = NULL;
|
ic->exec = NULL;
|
||||||
|
|
||||||
ic->o_layout = elm_layout_add(inst->o_icon_con);
|
ic->o_layout = elm_layout_add(inst->o_icon_con);
|
||||||
|
|
|
@ -73,6 +73,7 @@ struct _Icon
|
||||||
Eina_Bool in_order;
|
Eina_Bool in_order;
|
||||||
Eina_Bool active;
|
Eina_Bool active;
|
||||||
Eina_Bool starting;
|
Eina_Bool starting;
|
||||||
|
Eina_Bool preview_dismissed;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
unsigned char start : 1;
|
unsigned char start : 1;
|
||||||
|
|
Loading…
Reference in New Issue