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

Side by Side Diff: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc

Issue 2951213005: [LayoutNG] Support objects that are opaque to whitespace collapsing (Closed)
Patch Set: Renamed to AppendOpaque Created 3 years, 6 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
« no previous file with comments | « third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder_test.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/layout/ng/inline/ng_inline_node.h" 5 #include "core/layout/ng/inline/ng_inline_node.h"
6 6
7 #include "core/layout/BidiRun.h" 7 #include "core/layout/BidiRun.h"
8 #include "core/layout/LayoutBlockFlow.h" 8 #include "core/layout/LayoutBlockFlow.h"
9 #include "core/layout/LayoutObject.h" 9 #include "core/layout/LayoutObject.h"
10 #include "core/layout/LayoutText.h" 10 #include "core/layout/LayoutText.h"
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 while (node) { 223 while (node) {
224 if (node->IsText()) { 224 if (node->IsText()) {
225 builder->SetIsSVGText(node->IsSVGInlineText()); 225 builder->SetIsSVGText(node->IsSVGInlineText());
226 builder->Append(ToLayoutText(node)->GetText(), node->Style(), node); 226 builder->Append(ToLayoutText(node)->GetText(), node->Style(), node);
227 node->ClearNeedsLayout(); 227 node->ClearNeedsLayout();
228 228
229 } else if (node->IsFloating()) { 229 } else if (node->IsFloating()) {
230 // Add floats and positioned objects in the same way as atomic inlines. 230 // Add floats and positioned objects in the same way as atomic inlines.
231 // Because these objects need positions, they will be handled in 231 // Because these objects need positions, they will be handled in
232 // NGInlineLayoutAlgorithm. 232 // NGInlineLayoutAlgorithm.
233 builder->Append(NGInlineItem::kFloating, kObjectReplacementCharacter, 233 builder->AppendOpaque(NGInlineItem::kFloating, nullptr, node);
234 nullptr, node);
235 234
236 } else if (node->IsOutOfFlowPositioned()) { 235 } else if (node->IsOutOfFlowPositioned()) {
237 builder->Append(NGInlineItem::kOutOfFlowPositioned, 236 builder->AppendOpaque(NGInlineItem::kOutOfFlowPositioned, nullptr, node);
238 kObjectReplacementCharacter, nullptr, node);
239 237
240 } else if (node->IsAtomicInlineLevel()) { 238 } else if (node->IsAtomicInlineLevel()) {
241 // For atomic inlines add a unicode "object replacement character" to 239 // For atomic inlines add a unicode "object replacement character" to
242 // signal the presence of a non-text object to the unicode bidi algorithm. 240 // signal the presence of a non-text object to the unicode bidi algorithm.
243 builder->Append(NGInlineItem::kAtomicInline, kObjectReplacementCharacter, 241 builder->Append(NGInlineItem::kAtomicInline, kObjectReplacementCharacter,
244 node->Style(), node); 242 node->Style(), node);
245 243
246 } else if (!node->IsInline()) { 244 } else if (!node->IsInline()) {
247 // A block box found. End inline and transit to block layout. 245 // A block box found. End inline and transit to block layout.
248 return node; 246 return node;
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 item.Style() == item.GetLayoutObject()->Style()); 524 item.Style() == item.GetLayoutObject()->Style());
527 } 525 }
528 #endif 526 #endif
529 } 527 }
530 528
531 String NGInlineNode::ToString() const { 529 String NGInlineNode::ToString() const {
532 return String::Format("NGInlineNode"); 530 return String::Format("NGInlineNode");
533 } 531 }
534 532
535 } // namespace blink 533 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698