mirror of
https://github.com/servo/servo.git
synced 2025-06-21 15:49:04 +01:00
Apply line break suppression to text when in any ruby
This commit is contained in:
parent
5c9ba6e631
commit
89ba3553dc
2 changed files with 16 additions and 2 deletions
|
@ -108,8 +108,9 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
|
|||
///
|
||||
/// Note that this, for Gecko, comes through Servo_ComputedValues_Inherit.
|
||||
#[cfg(feature = "gecko")]
|
||||
pub fn adjust_for_text(&mut self) {
|
||||
pub fn adjust_for_text(&mut self, parent_style: &ComputedValues) {
|
||||
self.adjust_for_text_combine_upright();
|
||||
self.adjust_for_text_in_ruby(parent_style);
|
||||
self.set_bits();
|
||||
}
|
||||
|
||||
|
@ -138,6 +139,19 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
|
|||
}
|
||||
}
|
||||
|
||||
/// Applies the line break suppression flag to text if it is in any ruby
|
||||
/// box. This is necessary because its parent may not itself have the flag
|
||||
/// set (e.g. ruby or ruby containers), thus we may not inherit the flag
|
||||
/// from them.
|
||||
#[cfg(feature = "gecko")]
|
||||
fn adjust_for_text_in_ruby(&mut self, parent_style: &ComputedValues) {
|
||||
use properties::computed_value_flags::SHOULD_SUPPRESS_LINEBREAK;
|
||||
let parent_display = parent_style.get_box().clone_display();
|
||||
if parent_display.is_ruby_type() {
|
||||
self.style.flags.insert(SHOULD_SUPPRESS_LINEBREAK);
|
||||
}
|
||||
}
|
||||
|
||||
/// https://drafts.csswg.org/css-writing-modes-3/#block-flow:
|
||||
///
|
||||
/// If a box has a different writing-mode value than its containing
|
||||
|
|
|
@ -1821,7 +1821,7 @@ pub extern "C" fn Servo_ComputedValues_Inherit(
|
|||
|
||||
if for_text {
|
||||
StyleAdjuster::new(&mut style)
|
||||
.adjust_for_text();
|
||||
.adjust_for_text(reference);
|
||||
}
|
||||
|
||||
style.build()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue