summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLibravatar Shawn O. Pearce <spearce@spearce.org>2007-10-12 11:15:02 -0400
committerLibravatar Shawn O. Pearce <spearce@spearce.org>2007-10-12 23:05:59 -0400
commit580b73de258635ca392d917cda4341ac5f1a2535 (patch)
tree34b1755521dc6d9df03459953dcae298abd9bc76 /lib
parentgit-gui: Offer repository management features in menu bar (diff)
downloadtgif-580b73de258635ca392d917cda4341ac5f1a2535.tar.xz
git-gui: Fix bind errors when switching repository chooser panels
We need to remove any variable traces we may have installed when the panel is destroyed as the trace may attempt to use a widget that no longer exists on this panel. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/choose_repository.tcl6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl
index 46d5b77c00..ab8e620c70 100644
--- a/lib/choose_repository.tcl
+++ b/lib/choose_repository.tcl
@@ -352,6 +352,7 @@ method _do_new {} {
pack $w_body.where -fill x
trace add variable @local_path write [cb _write_local_path]
+ bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
update
focus $w_body.where.t
}
@@ -477,6 +478,10 @@ method _do_clone {} {
trace add variable @local_path write [cb _update_clone]
trace add variable @origin_url write [cb _update_clone]
+ bind $w_body.h <Destroy> "
+ [list trace remove variable @local_path write [cb _update_clone]]
+ [list trace remove variable @origin_url write [cb _update_clone]]
+ "
update
focus $args.origin_t
}
@@ -948,6 +953,7 @@ method _do_open {} {
pack $w_body.where -fill x
trace add variable @local_path write [cb _write_local_path]
+ bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
update
focus $w_body.where.t
}