summaryrefslogtreecommitdiff
path: root/src/model/content.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/content.rs')
-rw-r--r--src/model/content.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/model/content.rs b/src/model/content.rs
index bc25cd79..3851d38d 100644
--- a/src/model/content.rs
+++ b/src/model/content.rs
@@ -115,10 +115,14 @@ impl Content {
pub fn styled_with_entry(mut self, entry: StyleEntry) -> Self {
if let Some(styled) = self.try_downcast_mut::<StyledNode>() {
styled.map.apply(entry);
- return self;
+ self
+ } else if let Some(styled) = self.downcast::<StyledNode>() {
+ let mut map = styled.map.clone();
+ map.apply(entry);
+ StyledNode { sub: styled.sub.clone(), map }.pack()
+ } else {
+ StyledNode { sub: self, map: entry.into() }.pack()
}
-
- StyledNode { sub: self, map: entry.into() }.pack()
}
/// Style this content with a full style map.