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 <[email protected]>
+
+ * 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 <[email protected]>
* 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
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs