From 88263553734e2b3ae06f7db8792178b03d587980 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Sat, 10 Oct 2020 14:41:01 +0200 Subject: [PATCH] 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. --- src/bin/e_shelf.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index 79b652567..4808c66f6 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -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)) &&