Re: [PATCH] git-gui: Work around freeze problem with dialogs in Mac OS X

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <gitster@xxxxxxxxx> wrote:

> lists@xxxxxxxxxxxxxxxx (Stefan Haller) writes:
> 
> > Tk 8.5 on Mac OS X has a bug whereby a dialog opened from a key
> > binding will hang; see issue 3044863 in the Tk issue tracker.
> > <http://sourceforge.net/tracker/?func=detail&aid=3044863&group_id=12997&atid=112997>
> >
> > To work around this, we perform commands that open a dialog after
> > a brief delay; 150 ms seems to be a good compromise between short
> > enough as to be not annoying, and long enough to reliably work
> > around the issue.
> >
> > Signed-off-by: Stefan Haller <stefan@xxxxxxxxxxxxxxxx>
> 
> Is 150ms applicable no matter how fast or slow your Mac is, or is Mac so
> monoculture that everybody's machine has more or less the same performance
> characteristics?  IOW does this need to be autoadjusted?

To be honest, I don't know.  I was hoping that Daniel could shed some
light on whether this is dependent on the machine's performance, or why
the delay is needed at all (i.e. why a simple "after idle" won't do, as
one would have expected).

> I see a lot of wrapping around foo::dialog; without knowing much about
> Tcl, I wonder if it would be simpler, less error prone and more future
> proof to add the wrapping logic around something commonly used from them,
> e.g. class::make_dialog.

I need to wrap the top-level entry points of the command handlers,
because we want the delay only when the command is invoked from a key
binding, not when a menu item is selected with the mouse, or a button is
pushed.  Inside the functions, at the place where the dialog is created,
I can't tell from where we were called.


-- 
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]