aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/generated_content.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/generated_content.rs')
-rw-r--r--components/layout/generated_content.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/components/layout/generated_content.rs b/components/layout/generated_content.rs
index a5803d2484c..6e9f5da9918 100644
--- a/components/layout/generated_content.rs
+++ b/components/layout/generated_content.rs
@@ -15,6 +15,7 @@ use fragment::{Fragment, GeneratedContentInfo, SpecificFragmentInfo, UnscannedTe
use incremental::{self, RESOLVE_GENERATED_CONTENT};
use smallvec::SmallVec;
use text::TextRunScanner;
+use wrapper::PseudoElementType;
use gfx::display_list::OpaqueNode;
use std::collections::{LinkedList, HashMap};
@@ -174,6 +175,7 @@ impl<'a,'b> ResolveGeneratedContentFragmentMutator<'a,'b> {
GeneratedContentInfo::ListItem => {
new_info = self.traversal.list_item.render(self.traversal.layout_context,
fragment.node,
+ fragment.pseudo.clone(),
fragment.style.clone(),
list_style_type,
RenderingMode::Suffix(".\u{00a0}"))
@@ -190,6 +192,7 @@ impl<'a,'b> ResolveGeneratedContentFragmentMutator<'a,'b> {
.unwrap_or(&mut temporary_counter);
new_info = counter.render(self.traversal.layout_context,
fragment.node,
+ fragment.pseudo.clone(),
fragment.style.clone(),
counter_style,
RenderingMode::Plain)
@@ -204,6 +207,7 @@ impl<'a,'b> ResolveGeneratedContentFragmentMutator<'a,'b> {
.unwrap_or(&mut temporary_counter);
new_info = counter.render(self.traversal.layout_context,
fragment.node,
+ fragment.pseudo,
fragment.style.clone(),
counter_style,
RenderingMode::All(&separator));
@@ -211,6 +215,7 @@ impl<'a,'b> ResolveGeneratedContentFragmentMutator<'a,'b> {
GeneratedContentInfo::ContentItem(ContentItem::OpenQuote) => {
new_info = Some(render_text(self.traversal.layout_context,
fragment.node,
+ fragment.pseudo,
fragment.style.clone(),
self.quote(&*fragment.style, false)));
self.traversal.quote += 1
@@ -222,6 +227,7 @@ impl<'a,'b> ResolveGeneratedContentFragmentMutator<'a,'b> {
new_info = Some(render_text(self.traversal.layout_context,
fragment.node,
+ fragment.pseudo,
fragment.style.clone(),
self.quote(&*fragment.style, true)));
}
@@ -356,6 +362,7 @@ impl Counter {
fn render(&self,
layout_context: &LayoutContext,
node: OpaqueNode,
+ pseudo: PseudoElementType<()>,
style: Arc<ComputedValues>,
list_style_type: list_style_type::T,
mode: RenderingMode)
@@ -392,7 +399,7 @@ impl Counter {
if string.is_empty() {
None
} else {
- Some(render_text(layout_context, node, style, string))
+ Some(render_text(layout_context, node, pseudo, style, string))
}
}
}
@@ -418,12 +425,14 @@ struct CounterValue {
/// Creates fragment info for a literal string.
fn render_text(layout_context: &LayoutContext,
node: OpaqueNode,
+ pseudo: PseudoElementType<()>,
style: Arc<ComputedValues>,
string: String)
-> SpecificFragmentInfo {
let mut fragments = LinkedList::new();
let info = SpecificFragmentInfo::UnscannedText(UnscannedTextFragmentInfo::from_text(string));
fragments.push_back(Fragment::from_opaque_node_and_style(node,
+ pseudo,
style,
incremental::rebuild_and_reflow(),
info));