gitk: Use the builtin panedwidget size management functions pt/restore-geometry
authorPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 10 Mar 2010 23:04:06 +0000 (23:04 +0000)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 10 Mar 2010 23:04:06 +0000 (23:04 +0000)
Since Tk 8.5 the paned widget can be told which panes should expand using
the -stretch pane option. The ttk paned widget has a -weight option. This
patch makes use of these rather than handling the configure event which
currently causes the pane positions to creep during resizing and works
very poorly when switching between zoomed and normal views on windows.

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

diff --git a/gitk b/gitk
index 7a17cd36fd81df44d4c893d05edbee3864ff981d..f919e84602e1928acab666a8b71fd2626191ec6e 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -2068,16 +2068,23 @@ proc makewindow {} {
            .tf.histframe.pwclist sashpos 1 [lindex $::geometry(pwsash1) 0]
            .tf.histframe.pwclist sashpos 0 [lindex $::geometry(pwsash0) 0]
        }
+       .tf.histframe.pwclist pane 0 -weight 1
     } else {
        eval .tf.histframe.pwclist sash place 0 $geometry(pwsash0)
        eval .tf.histframe.pwclist sash place 1 $geometry(pwsash1)
+       if {$have_tk85} {
+           foreach pane [.tf.histframe.pwclist panes] {
+               .tf.histframe.pwclist paneconfigure $pane -stretch first
+           }
+       } else {
+           bind .tf.histframe.pwclist <Configure> {resizeclistpanes %W %w}
+       }
     }
 
     # a scroll bar to rule them
     ${NS}::scrollbar $cscroll -command {allcanvs yview}
     if {!$use_ttk} {$cscroll configure -highlightthickness 0}
     pack $cscroll -side right -fill y
-    bind .tf.histframe.pwclist <Configure> {resizeclistpanes %W %w}
     lappend bglist $canv $canv2 $canv3
     pack .tf.histframe.pwclist -fill both -expand 1 -side left
 
@@ -2360,6 +2367,9 @@ proc makewindow {} {
             bind %W <Map> {}
             %W sashpos 0 $::geometry(botwidth)
         }
+       .pwbottom pane 0 -weight 1
+    } else {
+        bind .pwbottom <Configure> {resizecdetpanes %W %w}
     }
 
     bind . <Configure> {
@@ -2368,7 +2378,6 @@ proc makewindow {} {
        }
     }
 
-    bind .pwbottom <Configure> {resizecdetpanes %W %w}
     pack .ctop -fill both -expand 1
     bindall <1> {selcanvline %W %x %y}
     #bindall <B1-Motion> {selcanvline %W %x %y}