Index: modules/taotk/core/baseclass.tcl ================================================================== --- modules/taotk/core/baseclass.tcl +++ modules/taotk/core/baseclass.tcl @@ -145,28 +145,22 @@ method Hull_Destroy {} { ### # Destroy our Tk representation ### my variable tkalias + set tkWidget {} if {[info exists tkalias]} { - set alias $tkalias - } else { - set alias {} - } - if {$alias ne {}} { - my Hull_Unbind $alias - } - catch {my action destroy} - - # Destroy an alias we may have created - if { $alias ne {} && [winfo exists $alias] } { - catch {rename [namespace current]::tkwidget {}} - } else { - set hull [my organ hull] - if { $hull ne "."} { - catch {::destroy $hull} - } + set tkWidget $tkalias + } + if {$tkWidget eq {}} { + set tkWidget [my widget hull] + } + if {$tkWidget eq {}} { + set tkWidget [my organ hull] + } + if {$tkWidget ne {}} { + my Hull_Unbind $tkWidget } ### # Clean up children ### @@ -175,10 +169,17 @@ } foreach subobj [info command [self].*] { if {[winfo exists $subobj]} continue catch {$subobj destroy} } + + catch {my action destroy} + + # Destroy an alias we may have created + if { $tkWidget ni {. {}} && [winfo exists $tkWidget] } { + ::destroy $tkWidget + } } ### # topic: 180536da1664900f26270fd54346f984bf070e44 # description: