Rick Macdonald wrote:
> 
> On Wed, 9 Apr 1997, Stewart Allen wrote:
> 
> > On Tue, 8 Apr 1997, Rick Macdonald wrote:
> >
> > > I thought I'd send Larry Virden the "step by step" for a Hello World
> > > program that he asked for. I hit a snag.
> > >
> > > Try this:
> > >
> > > o  start vtcl 1.09
> > > o  click toplevel in the toolbar
> > > o  click button in the tool bar
> > > o  click the "..." in the Visual Tcl menu, or "Command" in
> > >    the Attribute editor
> > > o  enter:  puts "Hello world" into the command editor window
> > >    and click OK.
> > >
> > > You get this error pop up:
> > >
> > >     Error: bad window path name ".vTcl.com__top17_but18"
> >
> >  I'm completely unable to duplicate this. What OS/rev tcl, etc?
> >  Are you using focus-follows-mouse?
> 
> I get it at home and the office.
> 
> Home:   Linux 2.0.25, Debian (unstable tree), fvwm2 Tcl/Tk 7.6p2/4.2p2.
> Office: Solaris 2.5, CDE 1.0.1, same Tcl/Tk.
> 
> I can try it on 7.5/4.1 on Solaris 2.4 and SGI IRIX64 tomorrow.
> 
> ...RickM...

I have the same problem, the complete trace is:

---------------------------------------------------------------
bad window path name ".vTcl.com__top17_but18"
    while executing
"destroy .vTcl.com__top17_but18"
    invoked from within
".vTcl.com__top17_but18.f21.button22 invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    invoked from within
"if {($w == $tkPriv(window))
                && ([$w cget -state] != "disabled")} {
            uplevel #0 [list $w invoke]
        }"
    invoked from within
"if {$w == $tkPriv(buttonWindow)} {
        set tkPriv(buttonWindow) ""
        $w config -relief $tkPriv(relief)
        if {($w == $tkPriv(window))
                && ([$w cget -state] ..."
    (procedure "tkButtonUp" line 3)
    invoked from within
"tkButtonUp .vTcl.com__top17_but18.f21.button22"
    (command bound to event)
-------------------------------------------------------------   


Problem is there is an additional "destroy $base" in
the button22 -command definition. edit_save
already destroys the window.

One solution (which is consistent with edit_cancel)
is to change:

proc vTcl:get_command in file command.tcl

FROM
 
... (line 87)
    button $base.f21.button22 \
        -command "
            vTcl:command:edit_save $base
            destroy $base
        " \
...

TO
...
    button $base.f21.button22 \
        -command "
            vTcl:command:edit_save $base
        " \
...


Regards,
-- 
Tony Grimm                     |       
Software Development           |        
Hewlett-Packard (Canada) Ltd.  |                  
CMD Edmonton RDP               |                   
phone : (403) 430-2716         |
e-mail: [EMAIL PROTECTED]    |

Reply via email to