Author: fredkiefer
Date: Fri Feb 17 20:44:25 2017
New Revision: 40346

URL: http://svn.gna.org/viewcvs/gnustep?rev=40346&view=rev
Log:
        * Source/GSLayoutManager.m (-usedRectForTextContainer:): Add extra
        line rect when needed.
        * Source/NSTextView.m (sizeToFit): Don't add extra line rect, as
        it is now already included.
        * Source/NSStringDrawing.m (cache_lookup): Remove hack for empty string.

Modified:
    libs/gui/trunk/ChangeLog
    libs/gui/trunk/Source/GSLayoutManager.m
    libs/gui/trunk/Source/NSStringDrawing.m
    libs/gui/trunk/Source/NSTextView.m

Modified: libs/gui/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/ChangeLog?rev=40346&r1=40345&r2=40346&view=diff
==============================================================================
--- libs/gui/trunk/ChangeLog    (original)
+++ libs/gui/trunk/ChangeLog    Fri Feb 17 20:44:25 2017
@@ -1,3 +1,11 @@
+2017-02-17 Fred Kiefer <fredkie...@gmx.de>
+
+       * Source/GSLayoutManager.m (-usedRectForTextContainer:): Add extra
+       line rect when needed.
+       * Source/NSTextView.m (sizeToFit): Don't add extra line rect, as
+       it is now already included.
+       * Source/NSStringDrawing.m (cache_lookup): Remove hack for empty string.
+
 2017-02-12 Fred Kiefer <fredkie...@gmx.de>
 
        * Source/NSStringDrawing.m: Use shared drawing code.

Modified: libs/gui/trunk/Source/GSLayoutManager.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/Source/GSLayoutManager.m?rev=40346&r1=40345&r2=40346&view=diff
==============================================================================
--- libs/gui/trunk/Source/GSLayoutManager.m     (original)
+++ libs/gui/trunk/Source/GSLayoutManager.m     Fri Feb 17 20:44:25 2017
@@ -2601,7 +2601,14 @@
     }
 
   if (tc->usedRectValid)
-    return tc->usedRect;
+    {
+      used = tc->usedRect;
+      if (tc->textContainer == extra_textcontainer)
+        {
+          used = NSUnionRect(used, extra_used_rect);
+        }
+      return used;
+    }
 
   if (tc->num_linefrags)
     {
@@ -2626,9 +2633,15 @@
       used = NSMakeRect(x0, y0, x1 - x0, y1 - y0);
     }
   else
-    used = NSZeroRect;
+    {
+      used = NSZeroRect;
+    }  
   tc->usedRect = used;
   tc->usedRectValid = YES;
+  if (tc->textContainer == extra_textcontainer)
+    {
+      used = NSUnionRect(used, extra_used_rect);
+    }
   return used;
 }
 

Modified: libs/gui/trunk/Source/NSStringDrawing.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/Source/NSStringDrawing.m?rev=40346&r1=40345&r2=40346&view=diff
==============================================================================
--- libs/gui/trunk/Source/NSStringDrawing.m     (original)
+++ libs/gui/trunk/Source/NSStringDrawing.m     Fri Feb 17 20:44:25 2017
@@ -285,17 +285,9 @@
           [c->textContainer setContainerSize: NSMakeSize(LARGE_SIZE, 
LARGE_SIZE)];
         }
       [c->layoutManager setUsesScreenFonts: useScreenFonts];
-
-      if ([c->textStorage length] == 0)
-        {
-          // FIXME: We should use attributes from the original data
-          CGFloat h = [[NSFont userFontOfSize: 0] defaultLineHeightForFont];
-          c->usedRect = NSMakeRect(0.0, 0.0, 0.0, h);
-        }
-      else
-        {
-          c->usedRect = [c->layoutManager usedRectForTextContainer: 
c->textContainer];
-        }
+      // Layout the whole container
+      [c->layoutManager glyphRangeForTextContainer: c->textContainer];
+      c->usedRect = [c->layoutManager usedRectForTextContainer: 
c->textContainer];
     }
 
   return c;

Modified: libs/gui/trunk/Source/NSTextView.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/Source/NSTextView.m?rev=40346&r1=40345&r2=40346&view=diff
==============================================================================
--- libs/gui/trunk/Source/NSTextView.m  (original)
+++ libs/gui/trunk/Source/NSTextView.m  Fri Feb 17 20:44:25 2017
@@ -1933,13 +1933,7 @@
   if (_tf.is_horizontally_resizable || _tf.is_vertically_resizable)
     {
       NSRect r = [_layoutManager usedRectForTextContainer: _textContainer];
-      NSSize s2;
-      if (_textContainer == [_layoutManager extraLineFragmentTextContainer])
-       {
-         r = NSUnionRect(r, [_layoutManager extraLineFragmentUsedRect]);
-       }
-
-      s2 = NSMakeSize(NSMaxX(r), NSMaxY(r));
+      NSSize s2 = NSMakeSize(NSMaxX(r), NSMaxY(r));
 
       if (_tf.is_horizontally_resizable)
        size.width = s2.width + 2 * _textContainerInset.width;


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

Reply via email to