Background: what a window is (basic X stuff)
When you're in GDK you never see all this stuff, because it wraps it. You see widgets instead. But some widgets have multiple windows and some have no windows (GTK_NO_WINDOW) because they draw in their parent widget's window.
So, client side windows. Only use X windows for toplevel. Subwindows are emulated.
Why?
How does it work? Lots of clever stuff about emulating events. "Sounds easy but it's not".
Merged to git master already; X11 working fine; Win32 being written.
When you're in GDK you never see all this stuff, because it wraps it. You see widgets instead. But some widgets have multiple windows and some have no windows (GTK_NO_WINDOW) because they draw in their parent widget's window.
So, client side windows. Only use X windows for toplevel. Subwindows are emulated.
Why?
- No flicker, because you never see a partially-drawn widget. (Demonstration. Spontaneous applause.)
- Smarter redrawing; less copying.
- Easier to work across platforms (no X-specific stuff for X and so on). Much simplified. (more applause)
- Bling: you can do rotation and stuff (more applause).
- More bling: crazy clutter stuff that bounces around while you're working on it. "This is clearly not like a useful user interface" :)
How does it work? Lots of clever stuff about emulating events. "Sounds easy but it's not".
Merged to git master already; X11 working fine; Win32 being written.