@@ -222,6 +222,8 @@ void UnserializeAndPasteCallback(string operationName, string serializedData)
222
222
223
223
Dictionary < string , BaseNode > copiedNodesMap = new Dictionary < string , BaseNode > ( ) ;
224
224
225
+ var unserializedGroups = data . copiedGroups . Select ( g => JsonSerializer . Deserialize < Group > ( g ) ) . ToList ( ) ;
226
+
225
227
foreach ( var serializedNode in data . copiedNodes )
226
228
{
227
229
var node = JsonSerializer . DeserializeNode ( serializedNode ) ;
@@ -232,6 +234,8 @@ void UnserializeAndPasteCallback(string operationName, string serializedData)
232
234
string sourceGUID = node . GUID ;
233
235
graph . nodesPerGUID . TryGetValue ( sourceGUID , out var sourceNode ) ;
234
236
//Call OnNodeCreated on the new fresh copied node
237
+ node . createdFromDuplication = true ;
238
+ node . createWithinGroup = unserializedGroups . Any ( g => g . innerNodeGUIDs . Contains ( sourceGUID ) ) ;
235
239
node . OnNodeCreated ( ) ;
236
240
//And move a bit the new node
237
241
node . position . position += new Vector2 ( 20 , 20 ) ;
@@ -247,10 +251,8 @@ void UnserializeAndPasteCallback(string operationName, string serializedData)
247
251
AddToSelection ( nodeViewsPerNode [ node ] ) ;
248
252
}
249
253
250
- foreach ( var serializedGroup in data . copiedGroups )
254
+ foreach ( var group in unserializedGroups )
251
255
{
252
- var group = JsonSerializer . Deserialize < Group > ( serializedGroup ) ;
253
-
254
256
//Same than for node
255
257
group . OnCreated ( ) ;
256
258
@@ -588,7 +590,13 @@ void MouseDownCallback(MouseDownEvent e)
588
590
}
589
591
590
592
bool DoesSelectionContainsInspectorNodes ( )
591
- => selection . Any ( s => s is BaseNodeView v && v . nodeTarget . needsInspector ) ;
593
+ {
594
+ var selectedNodes = selection . Where ( s => s is BaseNodeView ) . ToList ( ) ;
595
+ var selectedNodesNotInInspector = selectedNodes . Except ( nodeInspector . selectedNodes ) . ToList ( ) ;
596
+ var nodeInInspectorWithoutSelectedNodes = nodeInspector . selectedNodes . Except ( selectedNodes ) . ToList ( ) ;
597
+
598
+ return selectedNodesNotInInspector . Any ( ) || nodeInInspectorWithoutSelectedNodes . Any ( ) ;
599
+ }
592
600
593
601
void DragPerformedCallback ( DragPerformEvent e )
594
602
{
0 commit comments