aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/wrapper.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/wrapper.rs')
-rw-r--r--components/layout/wrapper.rs20
1 files changed, 18 insertions, 2 deletions
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index e76af843ea0..00c77631707 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -34,6 +34,7 @@ use core::nonzero::NonZero;
use data::{LayoutDataFlags, PrivateLayoutData};
use gfx::display_list::OpaqueNode;
use gfx::text::glyph::CharIndex;
+use gfx_traits::{LayerId, LayerType};
use incremental::RestyleDamage;
use msg::constellation_msg::PipelineId;
use opaque_node::OpaqueNodeMethods;
@@ -629,7 +630,7 @@ impl<T> PseudoElementType<T> {
}
}
- pub fn is_before_or_after(&self) -> bool {
+ pub fn is_replaced_content(&self) -> bool {
match *self {
PseudoElementType::Before(_) | PseudoElementType::After(_) => true,
_ => false,
@@ -851,6 +852,21 @@ pub trait ThreadSafeLayoutNode : Clone + Copy + Sized + PartialEq {
fn iframe_pipeline_id(&self) -> PipelineId;
fn get_colspan(&self) -> u32;
+
+ fn layer_id(&self) -> LayerId {
+ let layer_type = match self.get_pseudo_element_type() {
+ PseudoElementType::Normal => LayerType::FragmentBody,
+ PseudoElementType::Before(_) => LayerType::BeforePseudoContent,
+ PseudoElementType::After(_) => LayerType::AfterPseudoContent,
+ PseudoElementType::DetailsSummary(_) => LayerType::FragmentBody,
+ PseudoElementType::DetailsContent(_) => LayerType::FragmentBody,
+ };
+ LayerId::new_of_type(layer_type, self.opaque().id() as usize)
+ }
+
+ fn layer_id_for_overflow_scroll(&self) -> LayerId {
+ LayerId::new_of_type(LayerType::OverflowScroll, self.opaque().id() as usize)
+ }
}
// This trait is only public so that it can be implemented by the gecko wrapper.
@@ -1025,7 +1041,7 @@ impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> {
}
fn text_content(&self) -> TextContent {
- if self.pseudo.is_before_or_after() {
+ if self.pseudo.is_replaced_content() {
let data = &self.borrow_layout_data().unwrap().style_data;
let style = if self.pseudo.is_before() {