CLIM mail archive
When is a frame *really* up?
Subject: When is a frame *really* up?
From: Scott McKay <email@example.com>
Date: Tue, 19 Jul 94 17:14:07 EDT
In-Reply-To: Nichael Cramer's message of Tue, 17 May 94 14:16:38 EDT <firstname.lastname@example.org>
Date: Tue, 17 May 94 14:16:38 EDT
From: Nichael Cramer <ncramer@BBN.COM>
Is there a general, portable way to tell if an application frame has
really, honest-to-gosh, become visible on the screen? This is important in
a number of place; two obvious examples:
It is supposed to be the case that calling WINDOW-VISIBILITY on one of
the streams, or MIRROR-VISIBLE-P on any of the sheets should provide
this information. When they return NIL, the thing is deexposed (for
you Genera folks), or unmapped or iconified (for you X folks).
This works in Genera, and (as of today) in LispWorks, but who knows
about anywhere else.
1] If my application pops-up a new frame (possibly in situation where the
user wouldn't neccessarily expect it) I would like to indicate that
something is happening (for example by setting the "busy" pointer-cursor).
Unfortunately between the time that my code finishes launching the frame
and when the user actually sees the screen (which could be a sizable part
of minute later) the only symptom is that the system appears to hang. Bad
for the user.
2] Similarly I face the following problem if my application launches a
frame that wants to come up in particular display configuration. Namely,
if I'm doing anything other than strictly a vanilla redisplay I seem to be
getting into a race condition between the normal redisplay code and and my
As a result, I would like to wait until the frame is _really_ up and
running and _then_ start massaging the display. Again, I don't know how to
determine if this is the case.
Most of the obvious things (for example FRAME-STATE, etc) return the value
that the frame _will_ have once it gets up on the screen, with no
information about what's really happening.
Or is this all hopeless because I'm trying to extract information that
lives out on the other end of the X-connection?
Main Index |