It took a while, but it finally hit me that the surround with cut family of functions don't really do what they need to do when working on a selection. Ideally, all the sibling nodes of the graph should be contained within a single double cut, so that they remain siblings.
Right now, they all receive their own outer cuts, which is I guess sort of useful (so I probably want to keep this feature as another key press), but really the point of being able to select all of them is to make them act as a group.
Example:
Root
+--A *
+--B *
+--C
becomes
Root
+--Cut
+--A
+--Cut
+--B
+--C
in the current system, when it should instead do something like:
Root
+--Cut
+--A
+--B
+--C
Making it work this way will also have the benefit of being able to revert the selection after the operation. In the current mode, since A and B are no longer direct siblings, they can't be multi-selected after being surrounded with the cut. In the new way, they still are siblings, so it can be reverted back with no issues.
It took a while, but it finally hit me that the surround with cut family of functions don't really do what they need to do when working on a selection. Ideally, all the sibling nodes of the graph should be contained within a single double cut, so that they remain siblings.
Right now, they all receive their own outer cuts, which is I guess sort of useful (so I probably want to keep this feature as another key press), but really the point of being able to select all of them is to make them act as a group.
Example:
becomes
in the current system, when it should instead do something like:
Making it work this way will also have the benefit of being able to revert the selection after the operation. In the current mode, since A and B are no longer direct siblings, they can't be multi-selected after being surrounded with the cut. In the new way, they still are siblings, so it can be reverted back with no issues.