mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
stylo: Fix adjustment of the display property to save mOriginalDisplay properly.
This commit is contained in:
parent
94e563e4d9
commit
f695789aaa
2 changed files with 20 additions and 2 deletions
|
@ -1420,10 +1420,26 @@ fn static_assert() {
|
||||||
self.gecko.mDisplay = result;
|
self.gecko.mDisplay = result;
|
||||||
self.gecko.mOriginalDisplay = result;
|
self.gecko.mOriginalDisplay = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the display value from the style adjustment code. This is pretty
|
||||||
|
/// much like set_display, but without touching the mOriginalDisplay field,
|
||||||
|
/// which we want to keep.
|
||||||
|
pub fn set_adjusted_display(&mut self, v: longhands::display::computed_value::T) {
|
||||||
|
use properties::longhands::display::computed_value::T as Keyword;
|
||||||
|
let result = match v {
|
||||||
|
% for value in display_keyword.values_for('gecko'):
|
||||||
|
Keyword::${to_rust_ident(value)} =>
|
||||||
|
structs::${display_keyword.gecko_constant(value)},
|
||||||
|
% endfor
|
||||||
|
};
|
||||||
|
self.gecko.mDisplay = result;
|
||||||
|
}
|
||||||
|
|
||||||
pub fn copy_display_from(&mut self, other: &Self) {
|
pub fn copy_display_from(&mut self, other: &Self) {
|
||||||
self.gecko.mDisplay = other.gecko.mDisplay;
|
self.gecko.mDisplay = other.gecko.mDisplay;
|
||||||
self.gecko.mOriginalDisplay = other.gecko.mOriginalDisplay;
|
self.gecko.mOriginalDisplay = other.gecko.mDisplay;
|
||||||
}
|
}
|
||||||
|
|
||||||
<%call expr="impl_keyword_clone('display', 'mDisplay', display_keyword)"></%call>
|
<%call expr="impl_keyword_clone('display', 'mDisplay', display_keyword)"></%call>
|
||||||
|
|
||||||
// overflow-y is implemented as a newtype of overflow-x, so we need special handling.
|
// overflow-y is implemented as a newtype of overflow-x, so we need special handling.
|
||||||
|
|
|
@ -2006,13 +2006,15 @@ pub fn apply_declarations<'a, F, I>(viewport_size: Size2D<Au>,
|
||||||
};
|
};
|
||||||
if let Some(computed_display) = computed_display {
|
if let Some(computed_display) = computed_display {
|
||||||
let box_ = style.mutate_box();
|
let box_ = style.mutate_box();
|
||||||
box_.set_display(computed_display);
|
|
||||||
% if product == "servo":
|
% if product == "servo":
|
||||||
|
box_.set_display(computed_display);
|
||||||
box_.set__servo_display_for_hypothetical_box(if blockify_root || blockify_item {
|
box_.set__servo_display_for_hypothetical_box(if blockify_root || blockify_item {
|
||||||
computed_display
|
computed_display
|
||||||
} else {
|
} else {
|
||||||
specified_display
|
specified_display
|
||||||
});
|
});
|
||||||
|
% else:
|
||||||
|
box_.set_adjusted_display(computed_display);
|
||||||
% endif
|
% endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue