FFI problem

Bert Freudenberg bert at isg.cs.uni-magdeburg.de
Thu Feb 22 16:24:20 UTC 2001


On Wed, 21 Feb 2001, Joshua Channing Gargus wrote:

> What is the reasoning for having the 2 windows?

It simplifies going full-screen and nicely integrates with the browser
plugin.

The problem is this: In X, the Window Manager is the boss. No application
is allowed to just change its window size. The app issues a kind request
"please resize me" and the WM can do it, but you can't be sure it does.
This makes going full-screen somewhat hard. You can tell the WM to ignore
some window, but then you won't get any decoration on it. So we use two
windows - one to make the WM happy and inside of it the real window. When
going full screen, the real Squeak window is "reparented" to the root
window. It has the "leave-me-alone" flag set so the WM is scared and lets
us do what we must (*). When reverting fromm full-screen mode, the Squeak
window is reparented to the outer window with the window decoration.

Same story for the Browser Plugin. Mozilla provides a window for the
plugin. We create the Squeak window as child of that window, so it looks
like Squeak is running inside the browser. Of course, actually it's
running completely on its own. That's why you can "escape" the browser
window and go fullscreen from a plugin, too.

A funny thing to try is to use "xwininfo" to get at the window id of, say,
"xeyes" or "oclock", and then run Squeak inside that window:
"squeak -browserWindow 0x3200018 bla.image" :)

Back on topic: the X11 FFI examples do work as expected in full-screen
mode.

-- Bert

(*) actually it's called "Override Redirect"





More information about the Squeak-dev mailing list