Code

git-gui: Fix the blame viewer destroy handler.
authorAlexander Gavrilov <angavrilov@gmail.com>
Fri, 3 Oct 2008 07:36:54 +0000 (11:36 +0400)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 10 Oct 2008 16:33:21 +0000 (09:33 -0700)
It did not delete the object, which is not very good.
Also, destroy may be fired up for subwindows, so we
should check %W.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/blame.tcl

index a45784c0579517db2a6f90762a1a2a070bbaf490..765d08c004b68254713e2524b53d6df0bdc0c007 100644 (file)
@@ -377,11 +377,18 @@ constructor new {i_commit i_path i_jump} {
        "if {{$w.file_pane} eq {%W}} {[cb _resize %h]}"
 
        wm protocol $top WM_DELETE_WINDOW "destroy $top"
-       bind $top <Destroy> [cb _kill]
+       bind $top <Destroy> [cb _handle_destroy %W]
 
        _load $this $i_jump
 }
 
+method _handle_destroy {win} {
+       if {$win eq $w} {
+               _kill $this
+               delete_this
+       }
+}
+
 method _kill {} {
        if {$current_fd ne {}} {
                kill_file_process $current_fd