discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=61d51eda56e6a60004c15a847a57e505743afcfd
commit 61d51eda56e6a60004c15a847a57e505743afcfd Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Tue Oct 13 22:38:50 2015 -0400 subtract x11 client damage region even when forcing full override damage fix T2785 --- src/bin/e_comp_x.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 28b9b62..fe54a9b 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -2693,11 +2693,15 @@ _e_comp_x_damage(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Dam E_Client *ec; Ecore_X_Rectangle *rects = NULL; int n = 0; + Eina_Bool skip = EINA_FALSE; ec = _e_comp_x_client_find_by_damage(ev->damage); if (!ec) return ECORE_CALLBACK_PASS_ON; if (ec->override && (!ec->comp_data->first_damage)) - e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); + { + e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); + skip = EINA_TRUE; + } else if (ec->comp_data->damage) { Ecore_X_Region parts; @@ -2705,7 +2709,8 @@ _e_comp_x_damage(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Dam parts = ecore_x_region_new(NULL, 0); ecore_x_damage_subtract(ec->comp_data->damage, 0, parts); - rects = ecore_x_region_fetch(parts, &n, &bounds); + if (!skip) + rects = ecore_x_region_fetch(parts, &n, &bounds); ecore_x_region_free(parts); } //WRN("DAMAGE %p: %dx%d", ec, ev->area.width, ev->area.height); --