e gadgcon popup - actually for reals smooth out show

now it actually does look smooth. i oopsed in my last attempt.
This commit is contained in:
Carsten Haitzler 2019-08-22 08:21:39 +01:00
parent c29dd0f5cf
commit 02957edfe9
2 changed files with 16 additions and 16 deletions

View File

@ -70,8 +70,8 @@ _e_gadcon_popup_free(E_Gadcon_Popup *pop)
pop->gcc = NULL; pop->gcc = NULL;
evas_object_hide(pop->comp_object); evas_object_hide(pop->comp_object);
E_FREE_FUNC(pop->comp_object, evas_object_del); E_FREE_FUNC(pop->comp_object, evas_object_del);
E_FREE_FUNC(pop->show_idle_enterer, ecore_idle_enterer_del); E_FREE_FUNC(pop->show_idler, ecore_idler_del);
E_FREE_FUNC(pop->show_job, ecore_job_del); E_FREE_FUNC(pop->show_animator, ecore_animator_del);
free(pop); free(pop);
} }
@ -260,22 +260,23 @@ e_gadcon_popup_content_set(E_Gadcon_Popup *pop, Evas_Object *o)
_e_gadcon_popup_size_recalc(pop, o); _e_gadcon_popup_size_recalc(pop, o);
} }
static void static Eina_Bool
_cb_show_job(void *data) _cb_show_animator(void *data)
{ {
E_Gadcon_Popup *pop = data; E_Gadcon_Popup *pop = data;
E_FREE_FUNC(pop->show_idle_enterer, ecore_idle_enterer_del); pop->show_animator = NULL;
pop->show_job = NULL; E_FREE_FUNC(pop->show_idler, ecore_idler_del);
evas_object_show(pop->comp_object); evas_object_show(pop->comp_object);
return EINA_FALSE;
} }
static Eina_Bool static Eina_Bool
_cb_show_idle_enterer(void *data) _cb_show_idler(void *data)
{ {
E_Gadcon_Popup *pop = data; E_Gadcon_Popup *pop = data;
pop->show_idle_enterer = NULL; pop->show_idler = NULL;
E_FREE_FUNC(pop->show_job, ecore_job_del); E_FREE_FUNC(pop->show_animator, ecore_animator_del);
pop->show_job = ecore_job_add(_cb_show_job, pop); pop->show_animator = ecore_animator_add(_cb_show_animator, pop);
return EINA_FALSE; return EINA_FALSE;
} }
@ -292,8 +293,7 @@ e_gadcon_popup_show(E_Gadcon_Popup *pop)
pop->autoclose_handlers[1] = ecore_event_handler_add(E_EVENT_CLIENT_FULLSCREEN, _e_popup_autoclose_client_fullscreen_cb, NULL); pop->autoclose_handlers[1] = ecore_event_handler_add(E_EVENT_CLIENT_FULLSCREEN, _e_popup_autoclose_client_fullscreen_cb, NULL);
if (pop->content) if (pop->content)
e_comp_object_util_del_list_append(pop->comp_object, pop->content); e_comp_object_util_del_list_append(pop->comp_object, pop->content);
pop->show_idle_enterer = ecore_idle_enterer_add(_cb_show_idle_enterer, pop); pop->show_idler = ecore_idler_add(_cb_show_idler, pop);
evas_object_show(pop->comp_object);
pop->visible = EINA_TRUE; pop->visible = EINA_TRUE;
} }
@ -304,8 +304,8 @@ e_gadcon_popup_hide(E_Gadcon_Popup *pop)
E_OBJECT_TYPE_CHECK(pop, E_GADCON_POPUP_TYPE); E_OBJECT_TYPE_CHECK(pop, E_GADCON_POPUP_TYPE);
if (pop->pinned) return; if (pop->pinned) return;
if (!pop->visible) return; if (!pop->visible) return;
E_FREE_FUNC(pop->show_idle_enterer, ecore_idle_enterer_del); E_FREE_FUNC(pop->show_idler, ecore_idler_del);
E_FREE_FUNC(pop->show_job, ecore_job_del); E_FREE_FUNC(pop->show_animator, ecore_animator_del);
evas_object_hide(pop->comp_object); evas_object_hide(pop->comp_object);
if (pop->gadcon_was_locked) if (pop->gadcon_was_locked)
_e_gadcon_popup_locked_set(pop, 0); _e_gadcon_popup_locked_set(pop, 0);

View File

@ -17,8 +17,8 @@ struct _E_Gadcon_Popup
Evas_Object *o_bg; Evas_Object *o_bg;
Evas_Object *content; Evas_Object *content;
Ecore_Event_Handler *autoclose_handlers[2]; Ecore_Event_Handler *autoclose_handlers[2];
Ecore_Idle_Enterer *show_idle_enterer; Ecore_Idler *show_idler;
Ecore_Job *show_job;; Ecore_Animator *show_animator;
Evas_Coord w, h; Evas_Coord w, h;
Eina_Bool pinned E_BITFIELD; Eina_Bool pinned E_BITFIELD;