Author: toshok
Date: 2007-09-06 14:28:01 -0400 (Thu, 06 Sep 2007)
New Revision: 85437

Modified:
   trunk/moon/src/ChangeLog
   trunk/moon/src/dirty.cpp
Log:
        * dirty.cpp (process_dirty_elements): some guards against unioning
        an empty rectangle.

2007-09-06  Chris Toshok  <[EMAIL PROTECTED]>



Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog    2007-09-06 18:08:17 UTC (rev 85436)
+++ trunk/moon/src/ChangeLog    2007-09-06 18:28:01 UTC (rev 85437)
@@ -1,5 +1,10 @@
 2007-09-06  Chris Toshok  <[EMAIL PROTECTED]>
 
+       * dirty.cpp (process_dirty_elements): some guards against unioning
+       an empty rectangle.
+
+2007-09-06  Chris Toshok  <[EMAIL PROTECTED]>
+
        * runtime.cpp (Surface::Invalidate): only invalidate the actual
        rectangle.  The +1/-2 stuff is done in dirty.cpp, if it needs to
        be.

Modified: trunk/moon/src/dirty.cpp
===================================================================
--- trunk/moon/src/dirty.cpp    2007-09-06 18:08:17 UTC (rev 85436)
+++ trunk/moon/src/dirty.cpp    2007-09-06 18:28:01 UTC (rev 85437)
@@ -164,7 +164,10 @@
                        Rect dirty = el->dirty_rect;
                        if (el->UseAA() && !dirty.IsEmpty())
                                dirty = dirty.GrowBy (1);
-                       dirty = dirty.Union (el->children_dirty_rect);
+                       if (dirty.IsEmpty())
+                               dirty = el->children_dirty_rect;
+                       else if (!el->children_dirty_rect.IsEmpty())
+                               dirty = dirty.Union (el->children_dirty_rect);
 
                        if (el->parent) {
 //                       printf (" + + invalidating parent (%f,%f,%f,%f)\n",

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to