Mark Levedahl wrote: > > [...] so gitk's current behavior is not (at least to me) an aberration > and I would like that behavior to at least remain an option. It would be really annoying if I had to resize and reconfigure (the panes) each time I start gitk. How about only taking the saved geometry/fonts/etc when the screen size hasn't changed? The easiest method (for a Tcl-noob like me) would be to wrap the "set geometry..." in .gitk with an if-statement which checks the screen size. Something like this: diff --git a/gitk-git/gitk b/gitk-git/gitk index 5560e4d..1c572c9 100644 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -1158,14 +1158,12 @@ proc savestuff {w} { global viewname viewfiles viewargs viewperm nextviewnum global cmitmode wrapcomment datetimeformat limitdiffs global colors bgcolor fgcolor diffcolors diffcontext selectbgcolor + global screen_size if {$stuffsaved} return if {![winfo viewable .]} return catch { set f [open "~/.gitk-new" w] - puts $f [list set mainfont $mainfont] - puts $f [list set textfont $textfont] - puts $f [list set uifont $uifont] puts $f [list set tabstop $tabstop] puts $f [list set findmergefiles $findmergefiles] puts $f [list set maxgraphpct $maxgraphpct] @@ -1183,6 +1181,10 @@ proc savestuff {w} { puts $f [list set diffcontext $diffcontext] puts $f [list set selectbgcolor $selectbgcolor] + puts $f "if {\$screen_size == \"$screen_size\"} {" + puts $f [list set mainfont $mainfont] + puts $f [list set textfont $textfont] + puts $f [list set uifont $uifont] puts $f "set geometry(main) [wm geometry .]" puts $f "set geometry(topwidth) [winfo width .tf]" puts $f "set geometry(topheight) [winfo height .tf]" @@ -1198,6 +1200,7 @@ proc savestuff {w} { } } puts $f "}" + puts $f "}" close $f file rename -force "~/.gitk-new" "~/.gitk" } @@ -8461,6 +8464,8 @@ set diffcolors {red "#00a000" blue} set diffcontext 3 set selectbgcolor gray85 +set screen_size [winfo screenwidth .]x[winfo screenheight .] + ## For msgcat loading, first locate the installation location. if { [info exists ::env(GITK_MSGSDIR)] } { ## Msgsdir was manually set in the environment. Saving geometries for multiple screen sizes would be even better (i.e. geometry_1440x900(main) etc or an additional ".gitk-$screen_size" for the geometry data) but that is beyond my Tcl-skills. Ciao, ET. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html