CLIM mail archive

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

Re: old, repeat question



>Date: Thu, 21 Apr 94 13:03:45 EDT
>From: Jim Sims <sims@scra.org>
>Subject: old, repeat question
>
> CLIM 1.1, various platforms before, currently Allegro
> I think i saw this about a year or two ago: Whenever I execute
> clim::set-frame-layout inside a function (say bar), no other code in
> the calling function (say foo) gets executed. Is there a way around
> this?

> Ex
>(defun foo()
> (bar)
> (format t "~%this never prints anything"))
>
>(defun bar ()
> (clim::set-frame-layout clim:*application-frame* my-layout))
>
>jim

I asked this question a while back and the answer I got was, basically, no,
you can't do anything about it.  The reason is that CLIM throws all the way
out to the top-level after it does the SET-FRAME-LAYOUT.

The suggested work around was to hack the method with a name something like
NOTE-FRAME-LAYOUT-CHANGED (I forget just now, try apropos).

However, this doesn't really work because this method called in the middle
of the layout change; i.e. stuff still happens _after_ this method is
called, so you lose if your code depends on any of that.

The best I was able to come up with was to set a flag before I called
SET-FRAME-LAYOUT and have my command-loop check for it each time.

Nichael
ncramer@bbn.com    -- Captain and right quarter-guard, BBN Calvinball Team.


Main Index | Thread Index