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

Side by Side Diff: third_party/WebKit/Source/core/editing/VisibleSelection.cpp

Issue 1896793002: Rename (updateLayout/updateStyle).*.() to updateStyleAndLayout.*.() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 template <typename Strategy> 99 template <typename Strategy>
100 static SelectionType computeSelectionType(const PositionTemplate<Strategy>& star t, const PositionTemplate<Strategy>& end) 100 static SelectionType computeSelectionType(const PositionTemplate<Strategy>& star t, const PositionTemplate<Strategy>& end)
101 { 101 {
102 if (start.isNull()) { 102 if (start.isNull()) {
103 DCHECK(end.isNull()); 103 DCHECK(end.isNull());
104 return NoSelection; 104 return NoSelection;
105 } 105 }
106 if (start == end) 106 if (start == end)
107 return CaretSelection; 107 return CaretSelection;
108 // TODO(yosin) We should call |Document::updateLayout()| here for 108 // TODO(yosin) We should call |Document::updateStyleAndLayout()| here for
109 // |mostBackwardCaretPosition()|. However, we are here during 109 // |mostBackwardCaretPosition()|. However, we are here during
110 // |Node::removeChild()|. 110 // |Node::removeChild()|.
111 start.anchorNode()->updateDistribution(); 111 start.anchorNode()->updateDistribution();
112 end.anchorNode()->updateDistribution(); 112 end.anchorNode()->updateDistribution();
113 if (mostBackwardCaretPosition(start) == mostBackwardCaretPosition(end)) 113 if (mostBackwardCaretPosition(start) == mostBackwardCaretPosition(end))
114 return CaretSelection; 114 return CaretSelection;
115 return RangeSelection; 115 return RangeSelection;
116 } 116 }
117 117
118 template <typename Strategy> 118 template <typename Strategy>
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 template <typename Strategy> 214 template <typename Strategy>
215 EphemeralRangeTemplate<Strategy> VisibleSelectionTemplate<Strategy>::toNormalize dEphemeralRange() const 215 EphemeralRangeTemplate<Strategy> VisibleSelectionTemplate<Strategy>::toNormalize dEphemeralRange() const
216 { 216 {
217 if (isNone()) 217 if (isNone())
218 return EphemeralRangeTemplate<Strategy>(); 218 return EphemeralRangeTemplate<Strategy>();
219 219
220 // Make sure we have an updated layout since this function is called 220 // Make sure we have an updated layout since this function is called
221 // in the course of running edit commands which modify the DOM. 221 // in the course of running edit commands which modify the DOM.
222 // Failing to call this can result in equivalentXXXPosition calls returning 222 // Failing to call this can result in equivalentXXXPosition calls returning
223 // incorrect results. 223 // incorrect results.
224 m_start.document()->updateLayout(); 224 m_start.document()->updateStyleAndLayout();
225 225
226 // Check again, because updating layout can clear the selection. 226 // Check again, because updating layout can clear the selection.
227 if (isNone()) 227 if (isNone())
228 return EphemeralRangeTemplate<Strategy>(); 228 return EphemeralRangeTemplate<Strategy>();
229 229
230 if (isCaret()) { 230 if (isCaret()) {
231 // If the selection is a caret, move the range start upstream. This 231 // If the selection is a caret, move the range start upstream. This
232 // helps us match the conventions of text editors tested, which make 232 // helps us match the conventions of text editors tested, which make
233 // style determinations based on the character before the caret, if any. 233 // style determinations based on the character before the caret, if any.
234 const PositionTemplate<Strategy> start = mostBackwardCaretPosition(m_sta rt).parentAnchoredEquivalent(); 234 const PositionTemplate<Strategy> start = mostBackwardCaretPosition(m_sta rt).parentAnchoredEquivalent();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 } 283 }
284 284
285 template <typename Strategy> 285 template <typename Strategy>
286 void VisibleSelectionTemplate<Strategy>::appendTrailingWhitespace() 286 void VisibleSelectionTemplate<Strategy>::appendTrailingWhitespace()
287 { 287 {
288 DCHECK_EQ(m_granularity, WordGranularity); 288 DCHECK_EQ(m_granularity, WordGranularity);
289 const EphemeralRangeTemplate<Strategy> searchRange = makeSearchRange(end()); 289 const EphemeralRangeTemplate<Strategy> searchRange = makeSearchRange(end());
290 if (searchRange.isNull()) 290 if (searchRange.isNull())
291 return; 291 return;
292 292
293 // TODO(dglazkov): The use of updateLayoutIgnorePendingStylesheets needs to be audited. 293 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets n eeds to be audited.
294 // see http://crbug.com/590369 for more details. 294 // see http://crbug.com/590369 for more details.
295 searchRange.startPosition().document()->updateLayoutIgnorePendingStylesheets (); 295 searchRange.startPosition().document()->updateStyleAndLayoutIgnorePendingSty lesheets();
296 296
297 CharacterIteratorAlgorithm<Strategy> charIt(searchRange.startPosition(), sea rchRange.endPosition(), TextIteratorEmitsCharactersBetweenAllVisiblePositions); 297 CharacterIteratorAlgorithm<Strategy> charIt(searchRange.startPosition(), sea rchRange.endPosition(), TextIteratorEmitsCharactersBetweenAllVisiblePositions);
298 bool changed = false; 298 bool changed = false;
299 299
300 for (; charIt.length(); charIt.advance(1)) { 300 for (; charIt.length(); charIt.advance(1)) {
301 UChar c = charIt.characterAt(0); 301 UChar c = charIt.characterAt(0);
302 if ((!isSpaceOrNewline(c) && c != noBreakSpaceCharacter) || c == '\n') 302 if ((!isSpaceOrNewline(c) && c != noBreakSpaceCharacter) || c == '\n')
303 break; 303 break;
304 m_end = charIt.endPosition(); 304 m_end = charIt.endPosition();
305 changed = true; 305 changed = true;
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 const unsigned nodeLength = position.anchorNode()->lengthOfContents(); 836 const unsigned nodeLength = position.anchorNode()->lengthOfContents();
837 return offset <= nodeLength; 837 return offset <= nodeLength;
838 } 838 }
839 839
840 template <typename Strategy> 840 template <typename Strategy>
841 void VisibleSelectionTemplate<Strategy>::updateIfNeeded() 841 void VisibleSelectionTemplate<Strategy>::updateIfNeeded()
842 { 842 {
843 Document* document = m_base.document(); 843 Document* document = m_base.document();
844 if (!document) 844 if (!document)
845 return; 845 return;
846 document->updateLayoutIgnorePendingStylesheets(); 846 document->updateStyleAndLayoutIgnorePendingStylesheets();
847 const bool hasTrailingWhitespace = m_hasTrailingWhitespace; 847 const bool hasTrailingWhitespace = m_hasTrailingWhitespace;
848 validate(m_granularity); 848 validate(m_granularity);
849 if (!hasTrailingWhitespace) 849 if (!hasTrailingWhitespace)
850 return; 850 return;
851 appendTrailingWhitespace(); 851 appendTrailingWhitespace();
852 } 852 }
853 853
854 template <typename Strategy> 854 template <typename Strategy>
855 void VisibleSelectionTemplate<Strategy>::validatePositionsIfNeeded() 855 void VisibleSelectionTemplate<Strategy>::validatePositionsIfNeeded()
856 { 856 {
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 { 976 {
977 sel.showTreeForThis(); 977 sel.showTreeForThis();
978 } 978 }
979 979
980 void showTree(const blink::VisibleSelectionInFlatTree* sel) 980 void showTree(const blink::VisibleSelectionInFlatTree* sel)
981 { 981 {
982 if (sel) 982 if (sel)
983 sel->showTreeForThis(); 983 sel->showTreeForThis();
984 } 984 }
985 #endif 985 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698