Re: Focus problems...

From: Harvey J. Stein <abel_at_netvision.net.il>
Date: Mon, 21 Oct 1996 12:31:02 +0200

Erick Gallesio writes:
> > "Harvey J. Stein" writes

<snip>

> > So, I wiped out the binding for <key-tab> on all:
> >
> > STk> (bind "all" "<Key-Tab>" "")
> > ()
> >
> > Then I verified that it was gone:
> >
> > STk> (bind "all" "<Key-Tab>")
> > ()
> >
> > Then I hit tab in the STk window, and the binding for <Key-Tab> on
> > "all" magically reappears:
> >
> > STk> (bind "all" "<Key-Tab>")
> > (#[closure 8175d38] |W|)
> > STk> (procedure-body (car (bind "all" "<Key-Tab>")))
> > (lambda (|W|) (focus (tk:focus-next |W|)))
> >
> > So my second question is, why in the world does this happen?!?!?
>
> I cannot reproduce this! When the binding is deleted it doesn't reappear.

Very strange...

<snip>

> > Now for the second problem. When I'm holding down the tab key (so as
> > to rapidly move the focus from widget to widget due to a fast
> > autorepeat), and I also move around the mouse inside the STk window, I
> > start getting errors such as:
> >
> > *** Background error:
> > eval: bad function in : (#[unknown 19 80c2e98] .v1)
> > **** Tk error ("") "\n (command bound to event)"
> >
>
> Something with 19 value always denotes a GC problem :-< (19 correspnd
> top the code of a free cell, i.e. one which has been freed by the GC).
> However, I'm not able to reprocuce this. What is the release you have?

I'm using 3.1, under Linux 2.0.13, libc 5.2.18, XFree86 3.1.2, ELF
system (installed from redhat) on a Pentium 120. My autorepeat is set
to be quite fast. In /etc/X11/XF86Config, it has "autorepeat 500 5",
but I'm not sure if the setting is coming from there, or from the
bios, or if I'm overriding it somewhere else.

I did have to make some mods to get things to work well. The change
to tk-main for -geometry (that I mentioned previously), the change to
posix.stk that someone else mentioned, and I think there was some
minor makefile adjustment for Tk/unix, but I don't recall exactly.

I just tried again to reproduce it, and I couldn't initially. I
started by doing:

   (require "Tk-classes")
   (define e1 (make <Entry> ))
   (define e2 (make <Entry> ))
   (define b (make <button>))
   (pack e1 b e2)

After this, there're no errors generated when rapidly tabbing and
moving the mouse.

However, I then did:

   (bind e1 "<Key-Tab>" (lambda () (focus e2)))
   (bind e2 "<Key-Tab>" (lambda () (focus e1)))

After doing this, rapid tabbing quickly gives the above error
messages...

Given this, maybe the above problem with the reappearing bindings are
related. In other words, maybe it's not until doing the above
bindings and getting this gc error that the all bindings will reappear
after wiping them out.

Thanks,

Harvey
Received on Mon Oct 21 1996 - 12:32:39 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 21 2014 - 19:38:59 CEST