From 03b42061d4cb31d1aa8309853cde2eab26da8563 Mon Sep 17 00:00:00 2001 From: marko Date: Mon, 7 Nov 2005 14:40:09 +0000 Subject: [PATCH] Bugfix - propely handle pseudo-links when moving nodes between canvases. Bug found by: Submitted by: Requested by: Reviewed by: Approved by: Obtained from: --- editor.tcl | 10 +++++++--- linkcfg.tcl | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/editor.tcl b/editor.tcl index 1166bdc..d184cd9 100755 --- a/editor.tcl +++ b/editor.tcl @@ -574,7 +574,6 @@ proc movetoCanvas { canvas } { global changed set selected_nodes {} - set border_links {} foreach obj [.c find withtag "node && selected"] { set node [lindex [.c gettags $obj] 1] lappend selected_nodes $node @@ -590,7 +589,13 @@ proc movetoCanvas { canvas } { set peer2_in_selected [lsearch $selected_nodes $peer2] if { ($peer1_in_selected == -1 && $peer2_in_selected != -1) || ($peer1_in_selected != -1 && $peer2_in_selected == -1) } { - lappend border_links $link + if { [nodeType $peer2] == "pseudo" } { + setNodeCanvas $peer2 $canvas + if { [getNodeCanvas [getNodeMirror $peer2]] == $canvas } { + mergeLink $link + } + continue + } set new_nodes [splitLink $link pseudo] set new_node1 [lindex $new_nodes 0] set new_node2 [lindex $new_nodes 1] @@ -611,7 +616,6 @@ proc movetoCanvas { canvas } { proc mergeGUINode { node } { set link [lindex [linkByIfc $node [ifcList $node]] 0] -puts $link mergeLink $link redrawAll } diff --git a/linkcfg.tcl b/linkcfg.tcl index c1dd43c..c7a2ade 100755 --- a/linkcfg.tcl +++ b/linkcfg.tcl @@ -333,7 +333,6 @@ proc mergeLink { link } { global $orig_node1 $orig_node2 global $new_link -puts "$orig_node1 $orig_node2 $pseudo_node1 $pseudo_node2" set ifc1 [ifcByPeer $orig_node1 $pseudo_node1] set ifc2 [ifcByPeer $orig_node2 $pseudo_node2] set i [lsearch [set $orig_node1] "interface-peer {* $pseudo_node2}"] -- 2.39.5