Fix the geometry when restoring from zoomed state. pt/restore2
authorPat Thoyts <patthoyts@users.sourceforge.net>
Tue, 15 Sep 2009 09:37:51 +0000 (10:37 +0100)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Tue, 15 Sep 2009 09:37:51 +0000 (10:37 +0100)
The patch to handle the geometry of a restored gitk by Alexy Borzenkov
causes the position of the columns to creep each time the application
is restarted. This patch addresses this by remembering the application
geometry for the normal state and saving that regardless of the actual
state when the application is closed.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
gitk

diff --git a/gitk b/gitk
index a0214b7004f141b7c918a5360d85f8f9e2db285c..67122c393baf8eb937b7f06f89e5bdd8809c1606 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -2251,6 +2251,8 @@ proc makewindow {} {
            }
            wm geometry . "${w}x$h"
        }
+    } else {
+       set geometry(main) [wm geometry .]
     }
 
     if {[info exists geometry(state)] && $geometry(state) eq "zoomed"} {
@@ -2265,6 +2267,11 @@ proc makewindow {} {
         set ::BM "2"
     }
 
+    bind . <Configure> {
+       if {[winfo toplevel %W] eq "%W" && [wm state %W] eq "normal"} {
+           set ::geometry(main) %wx%h+%x+%y
+       }
+    }
     bind .pwbottom <Configure> {resizecdetpanes %W %w}
     pack .ctop -fill both -expand 1
     bindall <1> {selcanvline %W %x %y}
@@ -2556,7 +2563,7 @@ proc savestuff {w} {
        puts $f [list set extdifftool $extdifftool]
        puts $f [list set perfile_attrs $perfile_attrs]
 
-       puts $f "set geometry(main) [wm geometry .]"
+       puts $f "set geometry(main) $::geometry(main)"
        puts $f "set geometry(state) [wm state .]"
        puts $f "set geometry(topwidth) [winfo width .tf]"
        puts $f "set geometry(topheight) [winfo height .tf]"