Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ecompmgr.c 


Log Message:
Use extents equal shape for objects without shadow.
Correct damage update on shape change.

===================================================================
RCS file: /cvs/e/e16/e/src/ecompmgr.c,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -3 -r1.154 -r1.155
--- ecompmgr.c  27 May 2007 21:21:32 -0000      1.154
+++ ecompmgr.c  17 Jun 2007 09:35:18 -0000      1.155
@@ -999,6 +999,8 @@
 
 #endif /* ENABLE_SHADOWS */
 
+static XserverRegion win_shape(EObj * eo);
+
 /* Region of window in screen coordinates, including shadows */
 static              XserverRegion
 win_extents(EObj * eo)
@@ -1099,14 +1101,21 @@
    if (sr.y + sr.height > r.y + r.height)
       r.height = sr.y + sr.height - r.y;
 
+   rgn = ERegionCreateRect(r.x, r.y, r.width, r.height);
+   goto done;
+
  skip_shadow:
 #endif
 
+   /* No shadow - extents = shape */
+   if (cw->shape == None)
+      cw->shape = win_shape(eo);
+   rgn = ERegionClone(cw->shape);
+
+ done:
    D2printf("extents %#lx %d %d %d %d\n", EobjGetXwin(eo), r.x, r.y, r.width,
            r.height);
 
-   rgn = ERegionCreateRect(r.x, r.y, r.width, r.height);
-
    if (EDebug(EDBUG_TYPE_COMPMGR3))
       ERegionShow("extents", rgn);
 
@@ -1706,11 +1715,14 @@
    ECmWinInfo         *cw = eo->cmhook;
 
    D1printf("ECompMgrWinChangeShape %#lx\n", EobjGetXwin(eo));
+   if (cw->extents == None)
+      return;
 
    ECompMgrDamageMergeObject(eo, cw->extents);
-
+   ECompMgrWinInvalidate(eo, INV_POS); /* Invalidate extents and shape */
+   cw->extents = win_extents(eo);
+   ECompMgrDamageMergeObject(eo, cw->extents);
    _ECM_SET_CLIP_CHANGED();
-   ECompMgrWinInvalidate(eo, INV_SIZE);
 }
 
 void



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to