Subject: Re: [PATCH v3 1/2] Revert "gitk: Only restore window size from ~/.gitk, not position"

From: Mark Levedahl <[email-masked]>
Date: Sun, 28 Sep 2025 10:17:06 -0400

On 9/28/25 9:54 AM, Michael Rappazzo wrote:
> From: Johannes Sixt <[email-masked]>
>
> This reverts commit b9bee11526ec23541ddbbd75716bfd1acc241463.
>
> The commit catered to an unsupportable port of the Windows Tcl/Tk
> stuck at 8.4.1 that was used by Cygwin. 8.4.1 has some bad bugs in its
> layout engine, and forced changes in Gitk to be compatible. All this
> became irrelevant around 2011 after Cygwin gained an X11 server and
> switched to a supportable port of the Unix/X11 Tcl/Tk (it is now on the
> current 8.6 code base).
>
> Helped-by: Mark Levedahl <[email-masked]>
> Signed-off-by: Johannes Sixt <[email-masked]>
> ---
>  gitk | 12 ++----------
>  1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/gitk b/gitk
> index 6e4d71d585..275f353811 100755
> --- a/gitk
> +++ b/gitk
> @@ -2764,17 +2764,9 @@ proc makewindow {} {
>      .pwbottom add .bright
>      .ctop add .pwbottom
>  
> -    # restore window width & height if known
> +    # restore window position if known
>      if {[info exists geometry(main)]} {
> -        if {[scan $geometry(main) "%dx%d" w h] >= 2} {
> -            if {$w > [winfo screenwidth .]} {
> -                set w [winfo screenwidth .]
> -            }
> -            if {$h > [winfo screenheight .]} {
> -                set h [winfo screenheight .]
> -            }
> -            wm geometry . "${w}x$h"
> -        }
> +        wm geometry . "$geometry(main)"
>      }
>  
>      if {[info exists geometry(state)] && $geometry(state) eq "zoomed"} {
I mis-interpreted an earlier inquiry about the patch being reverted here. Patch e9937d2a03
actually addressed the issues of Cygwin's 8.4.1 Tcl/Tk. Part of that was fixing the window
geometry being restored, as sometimes the window manager would size the main window in a
manner causing 8.4.1 to fail. But, this override of the main window manager on all
platforms raised complaints on the mailing list, and commit b9bee11526 was the response:
it was only the SIZE of the Window that mattered on Cygwin, not its location, so allowing
window managers to set the location was ok.

Personally, I'm fine with gitk remembering / restoring the full window geometry (I wrote
it that way in e9937d2a03).

Mark