bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=88263553734e2b3ae06f7db8792178b03d587980

commit 88263553734e2b3ae06f7db8792178b03d587980
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Sat Oct 10 14:41:01 2020 +0200

    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)) &&

-- 


Reply via email to