OverviewFilesCommitsIssuesDocsReleasesPeers

ifsrenderer-linux commits / e3381dc

Build Node Graph looked like it did nothing outside three workspaces
The operator shows the new tree by walking context.screen.areas for a NODE_EDITOR and pointing it at the graph. If there is no node editor open, that loop matches nothing - so the tree was created as a datablock, nothing on screen changed, and the operator reported success. Indistinguishable from the button being broken. That is the DEFAULT case, not an edge case: the IFS panel lives in the 3D viewport sidebar, and of Blender's eleven stock workspaces only Shading, Compositing and Geometry Nodes contain a node editor. Layout - where the panel is, and where anyone would press the button - does not. Now it reports a WARNING naming the tree and saying where to look, and the panel status says the same. The graph was always built correctly; nothing could display it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
e3381dc9c0a907ad3d2c2da9f951644670f8b5c6
by plankatron <fleeky@gmail.com> · 2026-08-17T23:34:58.000Z

Changed files (1) +19 -1

blender/ifs_nodes.py +19 -1
……@@ -359,15 +359,33 @@ class IFS_OT_build_graph(Operator):
359359
360360 # tree_type as well as node_tree: assigning the tree alone leaves the
361361 # editor showing Shader nodes and the graph apparently missing.
362 shown = False
362363 for area in context.screen.areas:
363364 if area.type == 'NODE_EDITOR':
364365 area.spaces.active.tree_type = IFSNodeTree.bl_idname
365366 area.spaces.active.node_tree = tree
367 shown = True
366368
367369 if ifs_viewport.is_running():
368370 ifs_viewport.session().bind_tree(tree.name)
371
369372 settings.status = f"Graph built: {len(doc.iterators)} iterators"
370 self.report({'INFO'}, settings.status)
373 if shown:
374 self.report({'INFO'}, settings.status)
375 else:
376 # The panel lives in the 3D viewport sidebar, and the default Layout
377 # workspace has NO node editor - only Shading, Compositing and Geometry
378 # Nodes do. So the graph was built into a datablock with nothing on screen
379 # displaying it, and the operator reported success: indistinguishable from
380 # the button doing nothing at all.
381 settings.status = (
382 f"Graph '{tree.name}' built ({len(doc.iterators)} iterators) - "
383 "open a Node Editor to see it")
384 self.report(
385 {'WARNING'},
386 f"Graph '{tree.name}' built, but this workspace has no Node Editor. "
387 "Switch to the Geometry Nodes or Shading workspace (or change an area "
388 "to a Node Editor) and set its type to IFS Fractal.")
371389 return {'FINISHED'}
372390
373391