Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2022-09-28 16:08:09 +0300
committerJeroen Bakker <jeroen@blender.org>2022-10-03 15:59:18 +0300
commit57e8423ce758935d4630d8d670862418756e0bd9 (patch)
tree9f431bd91715da42a520e98671fbc372cd7fa561
parent8ec9ed008124e536803eb9bcbc9f19f51aafac2c (diff)
Fix missing Outliner updates when adding nodetrees
When e.g. grouping nodes into nodegroups, these would not show up immediately in the Outliner (Blender File / Data API view). Now send (unique combination, not used elsewhere) notifiers (and listen for these in the Outliner). Differential Revision: https://developer.blender.org/D16093
-rw-r--r--source/blender/editors/curves/intern/curves_ops.cc1
-rw-r--r--source/blender/editors/space_node/node_add.cc2
-rw-r--r--source/blender/editors/space_node/node_group.cc2
-rw-r--r--source/blender/editors/space_outliner/space_outliner.cc6
4 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/editors/curves/intern/curves_ops.cc b/source/blender/editors/curves/intern/curves_ops.cc
index 2c643225072..6750b1a6f1a 100644
--- a/source/blender/editors/curves/intern/curves_ops.cc
+++ b/source/blender/editors/curves/intern/curves_ops.cc
@@ -997,6 +997,7 @@ static int surface_set_exec(bContext *C, wmOperator *op)
DEG_id_tag_update(&curves_ob.id, ID_RECALC_TRANSFORM);
WM_event_add_notifier(C, NC_GEOM | ND_DATA, &curves_id);
+ WM_event_add_notifier(C, NC_NODE | NA_ADDED, NULL);
/* Required for deformation. */
new_surface_ob.modifier_flag |= OB_MODIFIER_FLAG_ADD_REST_POSITION;
diff --git a/source/blender/editors/space_node/node_add.cc b/source/blender/editors/space_node/node_add.cc
index efe53fd6f14..10e903ca79b 100644
--- a/source/blender/editors/space_node/node_add.cc
+++ b/source/blender/editors/space_node/node_add.cc
@@ -777,6 +777,8 @@ static int new_node_tree_exec(bContext *C, wmOperator *op)
ED_node_tree_update(C);
}
+ WM_event_add_notifier(C, NC_NODE | NA_ADDED, NULL);
+
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_node/node_group.cc b/source/blender/editors/space_node/node_group.cc
index 21def1bd9d7..e0de5e2f71d 100644
--- a/source/blender/editors/space_node/node_group.cc
+++ b/source/blender/editors/space_node/node_group.cc
@@ -1047,6 +1047,8 @@ static int node_group_make_exec(bContext *C, wmOperator *op)
ED_node_tree_propagate_change(C, bmain, nullptr);
+ WM_event_add_notifier(C, NC_NODE | NA_ADDED, NULL);
+
/* We broke relations in node tree, need to rebuild them in the graphs. */
DEG_relations_tag_update(bmain);
diff --git a/source/blender/editors/space_outliner/space_outliner.cc b/source/blender/editors/space_outliner/space_outliner.cc
index ed1bd5dbfac..e20bc0a956a 100644
--- a/source/blender/editors/space_outliner/space_outliner.cc
+++ b/source/blender/editors/space_outliner/space_outliner.cc
@@ -256,6 +256,12 @@ static void outliner_main_region_listener(const wmRegionListenerParams *params)
ED_region_tag_redraw(region);
}
break;
+ case NC_NODE:
+ if (ELEM(wmn->action, NA_ADDED, NA_REMOVED) &&
+ ELEM(space_outliner->outlinevis, SO_LIBRARIES, SO_DATA_API)) {
+ ED_region_tag_redraw(region);
+ }
+ break;
}
}