[librsvg: 2/8] For unknown nodes, create a NodeNonRendering



commit 51f992ca598b854cad98c2e92288ca00dd9ac1f8
Author: Federico Mena Quintero <federico gnome org>
Date:   Thu May 16 17:15:48 2019 -0500

    For unknown nodes, create a NodeNonRendering

 rsvg_internals/src/create_node.rs | 10 ++++++----
 rsvg_internals/src/node.rs        |  2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/rsvg_internals/src/create_node.rs b/rsvg_internals/src/create_node.rs
index d9a2694f..28b5db6e 100644
--- a/rsvg_internals/src/create_node.rs
+++ b/rsvg_internals/src/create_node.rs
@@ -126,6 +126,7 @@ node_create_fn!(
     FilterPrimitiveMorphology,
     Morphology::new
 );
+node_create_fn!(create_non_rendering, NonRendering, NodeNonRendering::new);
 node_create_fn!(create_offset, FilterPrimitiveOffset, Offset::new);
 node_create_fn!(create_path, Path, NodePath::new);
 node_create_fn!(create_pattern, Pattern, NodePattern::new);
@@ -287,10 +288,11 @@ pub fn create_node_and_register_id(
 
     let &(supports_class, create_fn) = match NODE_CREATORS.get(name) {
         Some(c) => c,
-        // Whenever we encounter a node we don't understand, represent it as a defs.
-        // This is like a group, but it doesn't do any rendering of children.  The
-        // effect is that we will ignore all children of unknown elements.
-        None => &(true, create_defs as NodeCreateFn),
+
+        // Whenever we encounter a node we don't understand, represent it as a
+        // non-rendering node.  This is like a group, but it doesn't do any rendering of
+        // children.  The effect is that we will ignore all children of unknown elements.
+        None => &(true, create_non_rendering as NodeCreateFn),
     };
 
     if !supports_class {
diff --git a/rsvg_internals/src/node.rs b/rsvg_internals/src/node.rs
index 1004bbc0..d09fc90f 100644
--- a/rsvg_internals/src/node.rs
+++ b/rsvg_internals/src/node.rs
@@ -371,6 +371,7 @@ pub enum NodeType {
     Link,
     Marker,
     Mask,
+    NonRendering,
     Path,
     Pattern,
     PointLight,
@@ -430,6 +431,7 @@ impl NodeType {
             NodeType::Link => "a",
             NodeType::Marker => "marker",
             NodeType::Mask => "mask",
+            NodeType::NonRendering => "rsvg-non-rendering", // Dummy element name
             NodeType::Path => "path",
             NodeType::Pattern => "pattern",
             NodeType::PointLight => "fePointight",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]