e_shelf: support state changes within the animation

the animation will get inverted now when you move your cursor within the
hide animation into the object again.

This should remove some stuttering that might be visible on your screen.
This commit is contained in:
Marcel Hollerbach 2020-10-10 14:41:01 +02:00
parent afb6ea1b22
commit 8826355373
1 changed files with 8 additions and 0 deletions

View File

@ -530,13 +530,21 @@ e_shelf_toggle(E_Shelf *es, int show)
{
ecore_timer_del(es->hide_timer);
es->hide_timer = NULL;
return; //we should not add a animator here, the shelf cannot have moved yet.
}
if (!es->hide_animator)
{
es->hide_begin = ecore_loop_time_get();
es->hide_animator =
ecore_animator_add(_e_shelf_cb_hide_animator, es);
}
else
{
double time_elapsed = ecore_loop_time_get() - es->hide_begin;
es->hide_begin = ecore_loop_time_get() - (es->cfg->hide_duration - time_elapsed);
}
}
}
else if ((!show) && (!es->hidden) && ((!es->gadcon) || (!es->gadcon->editing)) &&