Hi Ian, David,
I think you're the experts for Squeak X window handling ... What would be needed to modify the Unix VM to not open a window until the beDisplay() primitive is called? That's how the Mac and Acorn VMs handle things, making headless operation controllable from the image.
David, I guess this would be similar to how your XDisplayControl plugin works?
Secondly, what's your estimate of making the host window support work? It is implemented on Win and Mac VMs but not X11 yet. It basically is just some primitives to open, close, resize, and move windows, and display bits, plus the event reporting to the image needs to set a window index field.
For OLPC I need the ability to have multiple top-level windows, and I need to know their XID from the image. I only ever need to draw and handle events in the top-most window since all windows are full- screen (*). That means the full host window plugin support isn't actually needed, but I think it still makes sense because OLPC development continues on Mac and Win, too. If at all sensible I'd like to avoid OLPC-specific bits in the VM. Besides, more folks seem to be interested in multiple window support.
Anyway, what's the best way to approach this? Anybody taking it on? Or at least lending me a hand? ;)
- Bert -
(*) I tried to convince the OLPC folks to support multiple activity instances (**) sharing a single X window but so far I failed. In the mean time I'll just fake multiple X windows ...
(**) If anybody is interested: http://wiki.laptop.org/go/ Activity_DBus_API