[libdazzle] tree: add helper to rebuild node



commit c0ce642a75306e0d1503b90539478b51c1f6fcbb
Author: Christian Hergert <chergert redhat com>
Date:   Mon Dec 11 22:33:55 2017 -0800

    tree: add helper to rebuild node
    
    This allows rebuilding a node without invalidating children.

 src/tree/dzl-tree-node.c |   22 ++++++++++++++++++++++
 src/tree/dzl-tree-node.h |    2 ++
 2 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/src/tree/dzl-tree-node.c b/src/tree/dzl-tree-node.c
index 16f4e18..a420de2 100644
--- a/src/tree/dzl-tree-node.c
+++ b/src/tree/dzl-tree-node.c
@@ -1364,3 +1364,25 @@ dzl_tree_node_set_foreground_rgba (DzlTreeNode   *self,
 
   self->foreground_rgba_set = !!foreground_rgba;
 }
+
+/**
+ * dzl_tree_node_rebuild:
+ * @self: a #DzlTreeNode
+ *
+ * Rebuilds a node, without invalidating children nodes. If you want to
+ * ensure that children are also rebuilt, use dzl_tree_node_invalidate().
+ *
+ * Since: 3.28
+ */
+void
+dzl_tree_node_rebuild (DzlTreeNode *self)
+{
+  DzlTree *tree;
+
+  g_return_if_fail (DZL_IS_TREE_NODE (self));
+
+  tree = dzl_tree_node_get_tree (self);
+
+  if (tree != NULL)
+    _dzl_tree_build_node (tree, self);
+}
diff --git a/src/tree/dzl-tree-node.h b/src/tree/dzl-tree-node.h
index 40d39f0..3cf1637 100644
--- a/src/tree/dzl-tree-node.h
+++ b/src/tree/dzl-tree-node.h
@@ -77,6 +77,8 @@ void            dzl_tree_node_get_area              (DzlTreeNode            *nod
                                                      GdkRectangle           *area);
 DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_invalidate            (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_3_28
+void            dzl_tree_node_rebuild               (DzlTreeNode            *self);
 DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_get_expanded          (DzlTreeNode            *node);
 DZL_AVAILABLE_IN_ALL


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