summaryrefslogtreecommitdiffstats
path: root/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
diff options
context:
space:
mode:
Diffstat (limited to 'svgbob/src/buffer/fragment_buffer/fragment_tree.rs')
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment_tree.rs25
1 files changed, 24 insertions, 1 deletions
diff --git a/svgbob/src/buffer/fragment_buffer/fragment_tree.rs b/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
index 7006f2a..4615e75 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
@@ -102,7 +102,30 @@ impl FragmentTree {
fn into_nodes<MSG>(self) -> Vec<Node<MSG>> {
let mut nodes = vec![];
let mut fragment_node: Node<MSG> = self.fragment.into();
- fragment_node = fragment_node.add_attributes(vec![classes(self.css_tag)]);
+ let css_tag_len = self.css_tag.len();
+ if css_tag_len > 0 {
+ if let Some(ex_classes) = fragment_node
+ .get_attributes()
+ .unwrap()
+ .iter()
+ .find(|att| att.name() == &"class")
+ {
+ println!("existing classes: {:#?}", ex_classes);
+ println!("css tags: {:#?}", self.css_tag);
+ }
+ }
+ fragment_node = fragment_node.merge_attributes(vec![classes(self.css_tag)]);
+
+ if css_tag_len > 0 {
+ if let Some(ex_classes) = fragment_node
+ .get_attributes()
+ .unwrap()
+ .iter()
+ .find(|att| att.name() == &"class")
+ {
+ println!("AFTER merged: {:#?}", ex_classes);
+ }
+ }
nodes.push(fragment_node);
for child in self.enclosing {
nodes.extend(child.into_nodes())