discomfitor pushed a commit to branch master.

commit f7496d1d357142c7f89c07639eddf83b080a54db
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Jul 26 12:25:31 2013 +0100

    only show a comp win when it is no longer animating from a hide() call
    
    this should greatly reduce pixmap tearing when mousing through menus quickly
---
 src/bin/e_comp.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 0184749..f9c1cb3 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1549,6 +1549,14 @@ _e_comp_done_defer(E_Comp_Win *cw)
         cw->c->animating--;
      }
    cw->animating = 0;
+   if (cw->visible && cw->win && cw->real_hid)
+     {
+        /* window show event occurred during hide animation */
+        //INF("UNSETTING real_hid %p:%u", cw, cw->win);
+        _e_comp_win_damage(cw, cw->x, cw->y, cw->w, cw->h, 0);
+        _e_comp_child_hide(cw);
+        cw->real_hid = 0;
+     }
    _e_comp_win_render_queue(cw);
    cw->force = 1;
    if (cw->defer_hide) _e_comp_win_hide(cw);
@@ -2468,7 +2476,7 @@ _e_comp_win_show(E_Comp_Win *cw)
    if (cw->real_hid)
      {
         DBG("  [0x%x] real hid - fix", cw->win);
-        cw->real_hid = 0;
+        cw->real_hid = cw->animating;
         if (cw->native)
           {
              evas_object_image_native_surface_set(cw->obj, NULL);

-- 

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk

Reply via email to