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