forked from enlightenment/enlightenment
desklock - allow for fadein/out effects in theme for locking/unlocking
this allows the theme to now do special effects on showing the desklock and on hiding it again afterwards so it can look nicer. @feature
This commit is contained in:
parent
965133445a
commit
c997077c17
|
@ -294,7 +294,7 @@ e_desklock_show(Eina_Bool suspend)
|
||||||
|
|
||||||
o = evas_object_rectangle_add(e_comp->evas);
|
o = evas_object_rectangle_add(e_comp->evas);
|
||||||
block_rects = eina_list_append(block_rects, o);
|
block_rects = eina_list_append(block_rects, o);
|
||||||
evas_object_color_set(o, 0, 0, 0, 255);
|
evas_object_color_set(o, 0, 0, 0, 0);
|
||||||
evas_object_resize(o, 99999, 99999);
|
evas_object_resize(o, 99999, 99999);
|
||||||
evas_object_layer_set(o, E_LAYER_DESKLOCK);
|
evas_object_layer_set(o, E_LAYER_DESKLOCK);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
|
@ -454,16 +454,48 @@ _lokker_popup_add(E_Zone *zone)
|
||||||
edd->elock_wnd_list = eina_list_append(edd->elock_wnd_list, lp);
|
edd->elock_wnd_list = eina_list_append(edd->elock_wnd_list, lp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_lokker_cb_hide_done(void *data, Evas_Object *obj, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Evas_Object *comp_object = evas_object_data_get(obj, "comp_object");
|
||||||
|
edje_object_signal_callback_del(obj, "e,action,hide,done", "e",
|
||||||
|
_lokker_cb_hide_done);
|
||||||
|
evas_object_del(data);
|
||||||
|
evas_object_del(obj);
|
||||||
|
evas_object_hide(comp_object);
|
||||||
|
evas_object_del(comp_object);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_lokker_popup_free(Lokker_Popup *lp)
|
_lokker_popup_free(Lokker_Popup *lp)
|
||||||
{
|
{
|
||||||
|
const char *s;
|
||||||
if (!lp) return;
|
if (!lp) return;
|
||||||
|
|
||||||
evas_object_hide(lp->comp_object);
|
s = edje_object_data_get(lp->bg_object, "hide_signal");
|
||||||
evas_object_del(lp->comp_object);
|
if ((s) && (atoi(s) == 1))
|
||||||
|
{
|
||||||
|
evas_object_data_set(lp->bg_object, "comp_object", lp->comp_object);
|
||||||
|
evas_object_data_set(lp->bg_object, "login_box", lp->login_box);
|
||||||
|
edje_object_signal_callback_add(lp->bg_object,
|
||||||
|
"e,action,hide,done", "e",
|
||||||
|
_lokker_cb_hide_done,
|
||||||
|
lp->login_box);
|
||||||
|
edje_object_signal_emit(lp->bg_object, "e,action,hide", "e");
|
||||||
|
edje_object_signal_emit(lp->login_box, "e,action,hide", "e");
|
||||||
|
lp->bg_object = NULL;
|
||||||
|
lp->login_box = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
evas_object_del(lp->bg_object);
|
evas_object_del(lp->bg_object);
|
||||||
evas_object_del(lp->login_box);
|
evas_object_del(lp->login_box);
|
||||||
|
evas_object_hide(lp->comp_object);
|
||||||
|
evas_object_del(lp->comp_object);
|
||||||
|
lp->comp_object = NULL;
|
||||||
|
lp->bg_object = NULL;
|
||||||
|
lp->login_box = NULL;
|
||||||
|
}
|
||||||
free(lp);
|
free(lp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue