CLIM mail archive
Weird top-level accept symptom
As per my earlier message. (I'm on a Sun using Clim 1.0 in Allegro CL)
In my application frame I somethings get caught in a weird recursive type
accept problem. It seems that somehow the top-level accept loop in
the application frame sometimes starts in a deeper recursive call on accept
when you enter top level commands for the application. It shows up after
some commands have already been entered and executed on the application and
at some point you hit the debugger (so you can either pop or abort out).
Afterwards when I try and type in another application command as you type in
the characters (including trying to do completion via the space bar) the cursor
all of a sudden moves to another line in my interactor pane and continues to
echo out the characters of the command. Only the accept now thinks that those
characters entered on the new line are the beginning of a new command (from
this point on the top-level accept loop in the application frame is screwed
for keyboard input). So, if I try and rubout those characters I randomly get beeped and it ignores the rubout. However, if I do positioning of the cursor ala control characters the cursor sometimes jumps up to the original line
and starts editing on that character string. From that point on the cursor
randomly jumps back and forth between the two lines and never lets me
successfully remove all of the characters in both lines.
If I abort out of entering the command, from that point on the top-level
accept will continually fail to accept my commands via the keyboard. Menu
commands are still available and will echo correctly in the interactor pane,
but any keying in of commands will now fail as described above.
The only way for me to recover is to blow out the application frame and
re-instantiate a whole new one.
Another weird symptom is sometimes my interactor pane will lose the ability
to echo characters out (including the command prompt) (I think the ink
has somehow been flipped because I notice the cursor moving).
Here's something I found. Does anybody have the same problem if they do the
We'll I findly was able to find a way to reproduce the same symptom. If you
are in X you can have fun blowing CLIM's command accept in your application
frame by the following method.
>From the LISP listener invoke your application from a process-run-function,
after you have instantiated it into some global, lets say *my-application*.
Now start the application like so;
(process-run-function (list :name "My application") 'run-frame-top-level
Okay, your application is up on the display. Now go to the title bar for
that application and bring up the x-menu and select "Close" from it. This
will now close the application display into an icon. Go back into the
lisp listener and reinvoke the same process-run-function form. At this
point any attempt at invoking application commands in the top-level accept
will exhibit the same symptoms I have indicated above. I think I only hit these problems after I hit the debugger, while I am working in some of my
application commands. Apparently, there is a random chance that when you
pop or abort out of the debugger while in your application you can screw
your application command's top-level accept. The only recourse is to kill
that application and resinstantiate a new one. Gee, if only there was a
function in which you can totally flush out the top-level accept in your
application when it loses its input buffer positioning.
Main Index |