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

[PATCH] Make gitk save and restore the user set window position.

From
Mark Levedahl <mdl123@verizon.net>
Date
Feb 11, 2007, 14:27 UTC
Message-ID
<11712040403973-git-send-email-mdl123@verizon.net>
In-Reply-To
<11712040401127-git-send-email-mdl123@verizon.net>

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.

Signed-off-by: Mark Levedahl <mdl123@verizon.net>
---
 gitk |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/gitk b/gitk
index 1c36235..23bf567 100755
--- a/gitk
+++ b/gitk
@@ -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
@@ -829,7 +829,7 @@ 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}]"
@@ -5800,6 +5800,7 @@ proc showtag {tag isnew} {
 proc doquit {} {
     global stopped
     set stopped 100
+    savestuff .
     destroy .
 }
 
-- 
1.5.0.rc3.24.g0c5e
Previous: Mark LevedahlNext: Mark Levedahl
Message 2 of 8 in “Make gitk save and restore the user set window position.”
  1. Make gitk save and restore the user set window position.Mark Levedahl, Feb 11, 2007
  2. Make gitk save and restore the user set window position.Mark Levedahl, Feb 11, 2007
  3. Clean up geometry save code in gitk.Mark Levedahl, Feb 11, 2007
  4. Sergey VlasovFeb 11, 2007
  5. gitk: Fix restoring of pane sizesSergey Vlasov, Feb 11, 2007
  6. gitk: Fix restoring of column widths in the commit treeSergey Vlasov, Feb 11, 2007
  7. Mark LevedahlFeb 11, 2007
  8. Junio C HamanoFeb 11, 2007

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.