marnanel: (Default)
Monument ([personal profile] marnanel) wrote2009-07-06 06:05 am
Entry tags:

GCDS: Client side windows in GDK (Alexander Larsson's talk)

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?
  • 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" :)
Clientside will be default, except for toplevels.  There is a call you can use to force a window to be native.
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.

WysAOlWElzHSzYGuPfP

(Anonymous) 2013-10-31 08:53 am (UTC)(link)
lFyO1T Really appreciate you sharing this article. Really Cool.