Skip to content

Commit

Permalink
Make gitk save and restore the user set window position.
Browse files Browse the repository at this point in the history
gitk was saving widget sizes and positions when the main window was
destroyed, which is after all child widgets are destroyed. The cure
is to trap the WM_DELETE_WINDOW event before the gui is torn down. Also,
the saved geometry was captured using "winfo geometry .", rather than
"wm geometry ." Under Linux, these two return different answers and the
latter one is correct.

[jc: credit goes to Brett Schwarz for suggesting the use of "wm protocol";
 I also squashed the follow-up patch to remove extraneous -0
 from expressions.]

Signed-off-by: Mark Levedahl <mdl123@verizon.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Mark Levedahl authored and Paul Mackerras committed Feb 14, 2007
1 parent 7426eb7 commit b6047c5
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -725,7 +725,7 @@ proc makewindow {} {
bind . <Control-KP_Add> {incrfont 1}
bind . <Control-minus> {incrfont -1}
bind . <Control-KP_Subtract> {incrfont -1}
bind . <Destroy> {savestuff %W}
wm protocol . WM_DELETE_WINDOW doquit
bind . <Button-1> "click %W"
bind $fstring <Key-Return> dofind
bind $sha1entry <Key-Return> gotocommit
Expand Down Expand Up @@ -829,12 +829,12 @@ proc savestuff {w} {
puts $f [list set colors $colors]
puts $f [list set diffcolors $diffcolors]

puts $f "set geometry(main) [winfo geometry .]"
puts $f "set geometry(main) [wm geometry .]"
puts $f "set geometry(topwidth) [winfo width .tf]"
puts $f "set geometry(topheight) [winfo height .tf]"
puts $f "set geometry(canv) [expr {[winfo width $canv]-0}]"
puts $f "set geometry(canv2) [expr {[winfo width $canv2]-0}]"
puts $f "set geometry(canv3) [expr {[winfo width $canv3]-0}]"
puts $f "set geometry(canv) [winfo width $canv]"
puts $f "set geometry(canv2) [winfo width $canv2]"
puts $f "set geometry(canv3) [winfo width $canv3]"
puts $f "set geometry(botwidth) [winfo width .bleft]"
puts $f "set geometry(botheight) [winfo height .bleft]"

Expand Down Expand Up @@ -5800,6 +5800,7 @@ proc showtag {tag isnew} {
proc doquit {} {
global stopped
set stopped 100
savestuff .
destroy .
}

Expand Down

0 comments on commit b6047c5

Please sign in to comment.