summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2015-05-03 15:11:29 +1000
committerPaul Mackerras <paulus@samba.org>2015-05-03 15:11:29 +1000
commiteb859df85e480ae4aa76a0d8358054b10d91749c (patch)
tree9b408d97c649f644fcd248a7f1fd87d64d7742b8
parent009409fe72e53ce5a3c7cf6802d7e068632e68e8 (diff)
downloadgit-eb859df85e480ae4aa76a0d8358054b10d91749c.tar.gz
gitk: Fix error when changing colors after closing "List references" window
This fixes an error that manifests itself if the user opens the "List references" window and the closes it, and subsequently opens the Preferences window and changes one of the colors. When the user clicks OK, and error popup appears with the message: Error: invalid command name ".showrefs.list" This is because .showrefs.list was added to the list of windows to be notified on foreground/background color changes, but the window no longer exists. We fix the bug by checking whether the window exists before trying to change its colors. As an optimization, we also avoid adding the .showrefs.list window to the list a second time. Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-xgitk18
1 files changed, 13 insertions, 5 deletions
diff --git a/gitk b/gitk
index 07bdff6e5f..c18670488d 100755
--- a/gitk
+++ b/gitk
@@ -9819,8 +9819,10 @@ proc showrefs {} {
-width 30 -height 20 -cursor $maincursor \
-spacing1 1 -spacing3 1 -state disabled
$top.list tag configure highlight -background $selectbgcolor
- lappend bglist $top.list
- lappend fglist $top.list
+ if {![lsearch -exact $bglist $top.list]} {
+ lappend bglist $top.list
+ lappend fglist $top.list
+ }
${NS}::scrollbar $top.ysb -command "$top.list yview" -orient vertical
${NS}::scrollbar $top.xsb -command "$top.list xview" -orient horizontal
grid $top.list $top.ysb -sticky nsew
@@ -11532,7 +11534,9 @@ proc choosecolor {v vi w x cmd} {
proc setselbg {c} {
global bglist cflist
foreach w $bglist {
- $w configure -selectbackground $c
+ if {[winfo exists $w]} {
+ $w configure -selectbackground $c
+ }
}
$cflist tag configure highlight \
-background [$cflist cget -selectbackground]
@@ -11558,7 +11562,9 @@ proc setbg {c} {
global bglist
foreach w $bglist {
- $w conf -background $c
+ if {[winfo exists $w]} {
+ $w conf -background $c
+ }
}
}
@@ -11566,7 +11572,9 @@ proc setfg {c} {
global fglist canv
foreach w $fglist {
- $w conf -foreground $c
+ if {[winfo exists $w]} {
+ $w conf -foreground $c
+ }
}
allcanvs itemconf text -fill $c
$canv itemconf circle -outline $c