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

-- 


Reply via email to