Subject: Re: git-gui and scrollbars

From: "Shawn O. Pearce" <[email-masked]>
Date: Fri, 25 Jan 2008 20:55:40 -0500

Adam Flott <[email-masked]> wrote:
> Is it possible to have git-gui only show the scrollbars when text is too
> large for the window? Or is this a limitation of TK?

Its possible, but its a PITA in Tk.

There isn't a "hide scrollbars unless needed" option in Tk like
there is say in Java's Swing library.  You have to code up the Tk
procedure to dynamically create (and destroy) the scrollbars as
necessary based upon the associated text widget's extent.

I've done this in the revision picker megawidget that git-gui uses
in the create branch and checkout branch dialogs, but I haven't
done it for the blame window, or the diff window, or the file lists.

It also bit me recently as it seems Tk can delete the associated Tcl
procedure name for the scrollbar widget but still have the window
existing, and then I managed to get another Tk event processed that
wanted to update the scrollbar which was now partially destroyed
(or maybe it was partially created, I'm not sure).  Total suck.

I'm not inclined to do it in those other loctions anytime soon,
as I want to do some other GUI rebuilding work first.  I imagine
I'd try to make the scrollbars hidden when not needed once that
work is completed.  But its certainly a ways off.

-- 
Shawn.