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