mirror of
https://github.com/servo/servo.git
synced 2025-08-11 08:25:32 +01:00
Add a Stylo API for reparenting a given style.
Servo side of part 4 of the fix for Gecko bug 1324619. r=emilio
This commit is contained in:
parent
8db39f8fde
commit
7161fff1b8
6 changed files with 189 additions and 36 deletions
|
@ -41,6 +41,9 @@ use gecko_bindings::bindings::{Gecko_ResetFilters, Gecko_CopyFiltersFrom};
|
|||
use gecko_bindings::bindings::RawGeckoPresContextBorrowed;
|
||||
use gecko_bindings::structs;
|
||||
use gecko_bindings::structs::nsCSSPropertyID;
|
||||
use gecko_bindings::structs::mozilla::CSSPseudoElementType;
|
||||
use gecko_bindings::structs::mozilla::CSSPseudoElementType_InheritingAnonBox;
|
||||
use gecko_bindings::structs::root::NS_STYLE_CONTEXT_TYPE_SHIFT;
|
||||
use gecko_bindings::sugar::ns_style_coord::{CoordDataValue, CoordData, CoordDataMut};
|
||||
use gecko::values::convert_nscolor_to_rgba;
|
||||
use gecko::values::convert_rgba_to_nscolor;
|
||||
|
@ -133,6 +136,18 @@ impl ComputedValues {
|
|||
let atom = Atom::from(atom);
|
||||
PseudoElement::from_atom(&atom)
|
||||
}
|
||||
|
||||
fn get_pseudo_type(&self) -> CSSPseudoElementType {
|
||||
let bits = (self.0)._base.mBits;
|
||||
let our_type = bits >> NS_STYLE_CONTEXT_TYPE_SHIFT;
|
||||
unsafe { transmute(our_type as u8) }
|
||||
}
|
||||
|
||||
pub fn is_anon_box(&self) -> bool {
|
||||
let our_type = self.get_pseudo_type();
|
||||
return our_type == CSSPseudoElementType_InheritingAnonBox ||
|
||||
our_type == CSSPseudoElementType::NonInheritingAnonBox;
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for ComputedValues {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue