fixed: void scanning for fragments during typesetting

This commit is contained in:
daboe01 committed 2016-08-27 14:25:44 +02:00
1 parent 8588f446aa
commit 77435fcbd7
2 files changed
+7 -6

No files matched your search

+6 -5
View File
@@ -636,17 +636,18 @@ _oncontextmenuhandler = function () { return false; };
// FIXME
}
- (void)_appendNewLineFragmentInTextContainer:(CPTextContainer)aTextContainer forGlyphRange:(CPRange)glyphRange
{
_lineFragments.push([[_lineFragmentFactory alloc] initWithRange:glyphRange textContainer:aTextContainer textStorage:_textStorage]);
}
- (void)setTextContainer:(CPTextContainer)aTextContainer forGlyphRange:(CPRange)glyphRange
{
var fragments = _objectsInRange(_lineFragments, glyphRange),
l = fragments.length;
for (var i = 0; i < l; i++)
[fragments[i] invalidate];
var lineFragment = [[_lineFragmentFactory alloc] initWithRange:glyphRange textContainer:aTextContainer textStorage:_textStorage];
_lineFragments.push(lineFragment);
fragments[i]._textContainer = aTextContainer;
}
- (id)_lineFragmentForLocation:(unsigned) aLoc
+1 -1
View File
@@ -177,7 +177,7 @@ var CPSystemTypesetterFactory,
rect = CGRectMake(lineOrigin.x, lineOrigin.y, _lineWidth, _lineHeight),
containerSize = aContainer._size;
[_layoutManager setTextContainer:_currentTextContainer forGlyphRange:lineRange]; // creates a new lineFragment
[_layoutManager _appendNewLineFragmentInTextContainer:_currentTextContainer forGlyphRange:lineRange]
var fragment = [_layoutManager._lineFragments lastObject];
fragment._isLast = !sameLine;