Fix: Node "make_group" operator creates invisible links (regression)

Grouping a single node with hidden sockets can create links between the
group node input/output and the hidden sockets, which also hides the
new internal link.

This is a regression in #151894. Before this the make group operator
would always un-hide all sockets and un-collapse all panels of the
grouped node.

Make sure that created links in node group operators are always visible
and that panels are always uncollapsed. This is a little slower than
the previous approach of simply expanding everything, because we have
to slow-search through the panel hierarchy. But it is more consistent
behavior because we don't have to know which links the operator
creates, it just make anything visible that gets connected.

Pull Request: https://projects.blender.org/blender/blender/pulls/154264
This commit is contained in:
Lukas Tönne 2026-02-18 08:56:45 +01:00
parent 468dad0350
commit beafb31be4
3 changed files with 80 additions and 17 deletions

View file

@ -400,7 +400,7 @@ class AbstractNodeCopyOperatorTest(unittest.TestCase):
self.assertTrue(args.testdir.exists(),
'Test dir {0} should exist'.format(args.testdir))
open_test_file()
self.assertEqual(bpy.data.version, (5, 1, 23))
self.assertEqual(bpy.data.version, (5, 1, 27))
def tearDown(self):
self._tempdir.cleanup()
@ -427,6 +427,7 @@ class AbstractNodeCopyOperatorTest(unittest.TestCase):
self.assertEqual(test_socket.type, expected_socket.type)
self.assertEqual(test_socket.description, expected_socket.description)
self.assertEqual(test_socket.is_output, expected_socket.is_output)
self.assertEqual(test_socket.hide, expected_socket.hide)
# Input value
if not expected_socket.is_output: