Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(771)

Side by Side Diff: Source/core/rendering/RenderText.cpp

Issue 616703004: Merge 183104 "Force ComplexPath if any part of the node requires it" (Closed) Base URL: svn://svn.chromium.org/blink/branches/chromium/2171/
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Dirk Mueller (mueller@kde.org) 3 * (C) 2000 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 int nextBreakable = -1; 921 int nextBreakable = -1;
922 int lastWordBoundary = 0; 922 int lastWordBoundary = 0;
923 float cachedWordTrailingSpaceWidth[2] = { 0, 0 }; // LTR, RTL 923 float cachedWordTrailingSpaceWidth[2] = { 0, 0 }; // LTR, RTL
924 924
925 int firstGlyphLeftOverflow = -1; 925 int firstGlyphLeftOverflow = -1;
926 926
927 bool breakAll = (styleToUse->wordBreak() == BreakAllWordBreak || styleToUse- >wordBreak() == BreakWordBreak) && styleToUse->autoWrap(); 927 bool breakAll = (styleToUse->wordBreak() == BreakAllWordBreak || styleToUse- >wordBreak() == BreakWordBreak) && styleToUse->autoWrap();
928 928
929 TextRun textRun(text()); 929 TextRun textRun(text());
930 BidiResolver<TextRunIterator, BidiCharacterRun> bidiResolver; 930 BidiResolver<TextRunIterator, BidiCharacterRun> bidiResolver;
931
932 BidiCharacterRun* run; 931 BidiCharacterRun* run;
933 TextDirection textDirection = styleToUse->direction(); 932 TextDirection textDirection = styleToUse->direction();
934 if (isOverride(styleToUse->unicodeBidi())) { 933 if (isOverride(styleToUse->unicodeBidi())) {
935 run = 0; 934 run = 0;
936 } else { 935 } else {
937 BidiStatus status(textDirection, false); 936 BidiStatus status(textDirection, false);
938 bidiResolver.setStatus(status); 937 bidiResolver.setStatus(status);
939 bidiResolver.setPositionIgnoringNestedIsolates(TextRunIterator(&textRun, 0)); 938 bidiResolver.setPositionIgnoringNestedIsolates(TextRunIterator(&textRun, 0));
940 bool hardLineBreak = false; 939 bool hardLineBreak = false;
941 bool reorderRuns = false; 940 bool reorderRuns = false;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1100 if (!styleToUse->autoWrap()) 1099 if (!styleToUse->autoWrap())
1101 m_firstLineMinWidth = currMaxWidth; 1100 m_firstLineMinWidth = currMaxWidth;
1102 } 1101 }
1103 1102
1104 if (currMaxWidth > m_maxWidth) 1103 if (currMaxWidth > m_maxWidth)
1105 m_maxWidth = currMaxWidth; 1104 m_maxWidth = currMaxWidth;
1106 currMaxWidth = 0; 1105 currMaxWidth = 0;
1107 } else { 1106 } else {
1108 TextRun run = constructTextRun(this, f, this, i, 1, styleToUse, textDirection); 1107 TextRun run = constructTextRun(this, f, this, i, 1, styleToUse, textDirection);
1109 run.setCharactersLength(len - i); 1108 run.setCharactersLength(len - i);
1109 run.setUseComplexCodePath(!canUseSimpleFontCodePath());
1110 ASSERT(run.charactersLength() >= run.length()); 1110 ASSERT(run.charactersLength() >= run.length());
1111 run.setTabSize(!style()->collapseWhiteSpace(), style()->tabSize( )); 1111 run.setTabSize(!style()->collapseWhiteSpace(), style()->tabSize( ));
1112 run.setXPos(leadWidth + currMaxWidth); 1112 run.setXPos(leadWidth + currMaxWidth);
1113 1113
1114 currMaxWidth += f.width(run); 1114 currMaxWidth += f.width(run);
1115 glyphOverflow.right = 0; 1115 glyphOverflow.right = 0;
1116 needsWordSpacing = isSpace && !previousCharacterIsSpace && i == len - 1; 1116 needsWordSpacing = isSpace && !previousCharacterIsSpace && i == len - 1;
1117 } 1117 }
1118 ASSERT(lastWordBoundary == i); 1118 ASSERT(lastWordBoundary == i);
1119 lastWordBoundary++; 1119 lastWordBoundary++;
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
1862 } 1862 }
1863 secureTextTimer->restartWithNewText(lastTypedCharacterOffset); 1863 secureTextTimer->restartWithNewText(lastTypedCharacterOffset);
1864 } 1864 }
1865 1865
1866 PassRefPtr<AbstractInlineTextBox> RenderText::firstAbstractInlineTextBox() 1866 PassRefPtr<AbstractInlineTextBox> RenderText::firstAbstractInlineTextBox()
1867 { 1867 {
1868 return AbstractInlineTextBox::getOrCreate(this, m_firstTextBox); 1868 return AbstractInlineTextBox::getOrCreate(this, m_firstTextBox);
1869 } 1869 }
1870 1870
1871 } // namespace blink 1871 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698