mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Auto merge of #11039 - mbrubeck:strip-trailing, r=pcwalton
Remove redundant code in whitespace stripping LineBreaker calls Fragment::strip_trailing_whitespace_if_necessary and then recalculates the fragment's inline size. But this isn't necessary because strip_trailing_whitespace_if_necessary already recalculates the size. r? @pcwalton <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11039) <!-- Reviewable:end -->
This commit is contained in:
commit
f80641e7a1
2 changed files with 5 additions and 25 deletions
|
@ -2403,16 +2403,11 @@ impl Fragment {
|
|||
let whitespace_len = scanned_text_fragment_info.range.length() - whitespace_start;
|
||||
let whitespace_range = Range::new(whitespace_start, whitespace_len);
|
||||
|
||||
// FIXME: This may be unnecessary because these metrics will be recomputed in
|
||||
// LineBreaker::strip_trailing_whitespace_from_pending_line_if_necessary
|
||||
let text_bounds = scanned_text_fragment_info.run
|
||||
.metrics_for_range(&whitespace_range)
|
||||
.bounding_box;
|
||||
self.border_box.size.inline = self.border_box.size.inline -
|
||||
text_bounds.size.width;
|
||||
|
||||
scanned_text_fragment_info.content_size.inline =
|
||||
scanned_text_fragment_info.content_size.inline - text_bounds.size.width;
|
||||
self.border_box.size.inline -= text_bounds.size.width;
|
||||
scanned_text_fragment_info.content_size.inline -= text_bounds.size.width;
|
||||
|
||||
scanned_text_fragment_info.range.extend_by(-whitespace_len);
|
||||
WhitespaceStrippingResult::RetainFragment
|
||||
|
|
|
@ -392,27 +392,12 @@ impl LineBreaker {
|
|||
let last_fragment_index = self.pending_line.range.end() - FragmentIndex(1);
|
||||
let mut fragment = &mut self.new_fragments[last_fragment_index.get() as usize];
|
||||
|
||||
let mut old_fragment_inline_size = None;
|
||||
if let SpecificFragmentInfo::ScannedText(_) = fragment.specific {
|
||||
old_fragment_inline_size = Some(fragment.border_box.size.inline +
|
||||
fragment.margin.inline_start_end());
|
||||
}
|
||||
let old_fragment_inline_size = fragment.border_box.size.inline;
|
||||
|
||||
fragment.strip_trailing_whitespace_if_necessary();
|
||||
|
||||
if let SpecificFragmentInfo::ScannedText(ref mut scanned_text_fragment_info) =
|
||||
fragment.specific {
|
||||
let scanned_text_fragment_info = &mut **scanned_text_fragment_info;
|
||||
let range = &mut scanned_text_fragment_info.range;
|
||||
|
||||
scanned_text_fragment_info.content_size.inline =
|
||||
scanned_text_fragment_info.run.metrics_for_range(range).advance_width;
|
||||
fragment.border_box.size.inline = scanned_text_fragment_info.content_size.inline +
|
||||
fragment.border_padding.inline_start_end();
|
||||
self.pending_line.bounds.size.inline = self.pending_line.bounds.size.inline -
|
||||
(old_fragment_inline_size.unwrap() -
|
||||
(fragment.border_box.size.inline + fragment.margin.inline_start_end()));
|
||||
}
|
||||
self.pending_line.bounds.size.inline +=
|
||||
fragment.border_box.size.inline - old_fragment_inline_size;
|
||||
}
|
||||
|
||||
// FIXME(eatkinson): this assumes that the tallest fragment in the line determines the line
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue