Author: mlytwyn
Date: Thu Sep 10 17:36:04 2015
New Revision: 38978

URL: http://svn.gna.org/viewcvs/gnustep?rev=38978&view=rev
Log:
Revert to previous NSView display processing due to flicker issue

Modified:
    libs/gui/branches/gnustep_testplant_branch/Source/NSView.m

Modified: libs/gui/branches/gnustep_testplant_branch/Source/NSView.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/branches/gnustep_testplant_branch/Source/NSView.m?rev=38978&r1=38977&r2=38978&view=diff
==============================================================================
--- libs/gui/branches/gnustep_testplant_branch/Source/NSView.m  (original)
+++ libs/gui/branches/gnustep_testplant_branch/Source/NSView.m  Thu Sep 10 
17:36:04 2015
@@ -2545,7 +2545,6 @@
       flush = YES;
       [_window disableFlushWindow];
       aRect = NSIntersectionRect(aRect, visibleRect);
-      aRect = NSIntegralRect(aRect);
       neededRect = NSIntersectionRect(_invalidRect, visibleRect);
   
       /*
@@ -2555,46 +2554,52 @@
        * If the drawn rectangle cuts off a complete part of the
        * _invalidRect, we should remove that part.
        */
+#if 0
       if (NSEqualRects(aRect, NSUnionRect(neededRect, aRect)) == YES || 
neededRect.size.width < 1 || neededRect.size.height < 1)
+#else
+      if (NSEqualRects(aRect, NSUnionRect(neededRect, aRect)) == YES)
+#endif
         {
           _invalidRect = NSZeroRect;
           _rFlags.needs_display = NO;
         }
+#if 0 // Testplant-MAL-2015-09-10: removing due to flicker issue...
       // Testplant-MAL-2015-07-08: keeping testplant branch code...
       else
-         {
-                 NSRectEdge sliceEdge = NSNotFound;
-                 float distance = 0;
-
-                 // check that intersection of aRect and _invalidRect either 
has an equal height or width to _invalidRect
-                 // eg, if they are equal heights, we might be a slice on the 
left or right side
-                 NSRect invalidAndRedrawn = NSIntersectionRect(aRect, 
neededRect);
-                 if ( invalidAndRedrawn.size.height == neededRect.size.height 
) {
-                         // then check that aRect contains one of the side 
(corner?) points of _invalidRect (inclusive)
-                         if ( NSPointInRect(NSMakePoint(NSMinX(neededRect), 
NSMidY(neededRect)), aRect) ) {
-                                 sliceEdge = NSMinXEdge;
-                                 distance = invalidAndRedrawn.size.width;
-                         } else if ( 
NSPointInRect(NSMakePoint(NSMaxX(neededRect), NSMidY(neededRect)), aRect) ) {
-                                 sliceEdge = NSMaxXEdge;
-                                 distance = invalidAndRedrawn.size.width;
-                         }
-                 } else if ( invalidAndRedrawn.size.width  == 
neededRect.size.width  ) {
-                         if ( NSPointInRect(NSMakePoint(NSMidX(neededRect), 
NSMinY(neededRect)), aRect) ) {
-                                 sliceEdge = NSMinYEdge;
-                                 distance = invalidAndRedrawn.size.height;
-                         } else if ( 
NSPointInRect(NSMakePoint(NSMidX(neededRect), NSMaxY(neededRect)), aRect) ) {
-                                 sliceEdge = NSMaxYEdge;
-                                 distance = invalidAndRedrawn.size.height;
-                         }
-                 }
-
-                 // remove the drawn area from _invalidRect
-                 if ( sliceEdge != NSNotFound && fabsf(distance) >= 1 ) {
-                         NSRect newInvalid;
-                         NSDivideRect(_invalidRect, 0, &newInvalid, distance, 
sliceEdge);
-                         _invalidRect = newInvalid;
-                 }
-         }
+        {
+          NSRectEdge sliceEdge = NSNotFound;
+          float distance = 0;
+          
+          // check that intersection of aRect and _invalidRect either has an 
equal height or width to _invalidRect
+          // eg, if they are equal heights, we might be a slice on the left or 
right side
+          NSRect invalidAndRedrawn = NSIntersectionRect(aRect, neededRect);
+          if ( invalidAndRedrawn.size.height == neededRect.size.height ) {
+            // then check that aRect contains one of the side (corner?) points 
of _invalidRect (inclusive)
+            if ( NSPointInRect(NSMakePoint(NSMinX(neededRect), 
NSMidY(neededRect)), aRect) ) {
+              sliceEdge = NSMinXEdge;
+              distance = invalidAndRedrawn.size.width;
+            } else if ( NSPointInRect(NSMakePoint(NSMaxX(neededRect), 
NSMidY(neededRect)), aRect) ) {
+              sliceEdge = NSMaxXEdge;
+              distance = invalidAndRedrawn.size.width;
+            }
+          } else if ( invalidAndRedrawn.size.width  == neededRect.size.width  
) {
+            if ( NSPointInRect(NSMakePoint(NSMidX(neededRect), 
NSMinY(neededRect)), aRect) ) {
+              sliceEdge = NSMinYEdge;
+              distance = invalidAndRedrawn.size.height;
+            } else if ( NSPointInRect(NSMakePoint(NSMidX(neededRect), 
NSMaxY(neededRect)), aRect) ) {
+              sliceEdge = NSMaxYEdge;
+              distance = invalidAndRedrawn.size.height;
+            }
+          }
+          
+          // remove the drawn area from _invalidRect
+          if ( sliceEdge != NSNotFound && fabsf(distance) >= 1 ) {
+            NSRect newInvalid;
+            NSDivideRect(_invalidRect, 0, &newInvalid, distance, sliceEdge);
+            _invalidRect = newInvalid;
+          }
+        }
+#endif
     }
   
   if (NSIsEmptyRect(aRect) == NO)
@@ -2605,6 +2610,7 @@
       [self _lockFocusInContext: context inRect: aRect];
       [self drawRect: aRect];
       [self unlockFocusNeedsFlush: flush];
+      _rFlags.needs_display = NO;
     }
 
   /*


_______________________________________________
Gnustep-cvs mailing list
Gnustep-cvs@gna.org
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to