git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] gitk: don't save the geometry to rc file on exit

From
ETEdgar Toernig <froese@gmx.de>
Date
Feb 24, 2008, 18:21 UTC
Message-ID
<20080224192107.323a6abc.froese@gmx.de>
In-Reply-To
<47C190E3.6000407@gmail.com>
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.
Previous: Mark LevedahlNext: Paul Mackerras
Message 10 of 26 in “Bug in gitk - can post the window off screen”
  1. Tommy ThornFeb 7, 2008
  2. Shawn O. PearceFeb 7, 2008
  3. Robin RosenbergFeb 7, 2008
  4. Gerrit PapeFeb 7, 2008
  5. gitk: don't save the geometry to rc file on exitGerrit Pape, Feb 23, 2008
  6. Robin RosenbergFeb 23, 2008
  7. Jonathan del StrotherFeb 23, 2008
  8. Paul MackerrasFeb 23, 2008
  9. Mark LevedahlFeb 24, 2008
  10. Edgar ToernigFeb 24, 2008
  11. Paul MackerrasMar 6, 2008
  12. Jonathan del StrotherMar 6, 2008
  13. Paul MackerrasMar 6, 2008
  14. Mark LevedahlMar 7, 2008
  15. martin f krafftMar 7, 2008
  16. Paul MackerrasMar 8, 2008
  17. martin f krafftMar 10, 2008
  18. David TweedMar 10, 2008
  19. martin f krafftFeb 25, 2008
  20. Paul MackerrasFeb 25, 2008
  21. martin f krafftFeb 25, 2008
  22. Mark LevedahlFeb 25, 2008
  23. martin f krafftFeb 25, 2008
  24. Martin LanghoffFeb 25, 2008
  25. Robin RosenbergFeb 25, 2008
  26. A Large Angry SCMFeb 26, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.