What GDK_NATIVE_WINDOWS=1 means

| 3 Comments | No TrackBacks

I noticed in the list of Common Fedora 12 Bugs that in order to run the current version of Adobe Acroread for Linux it must be launched with:
GDK_NATIVE_WINDOWS=1 acroread

Note that GDK is the underlying graphical toolkit for creating GUI applications using GTK (most commonly for applications used on the GNOME desktop). The Linux version of Adobe Acroread uses GTK/GDK.

I was curious about GDK_NATIVE_WINDOWS=1 and I found the following information:

From www.gtk.org I found



GDK has been rewritten to use 'client-side windows'. This means that GDK maintains its own window hierarchy and only uses X windows where it is necessary or explicitly requested. Some of the benefits of this change are

  • Reduced flicker
  • The ability to do transformed and animated rendering of widgets
  • Easier embedding of GTK+ widgets, e.g. into Clutter scene graphs


Launching an app with GDK_NATIVE_WINDOWS=1 application turns off this feature. This is needed if the application manipulates the windows it creates using direct X API calls or a mixture of X API and GDK instead of just going through GDK. When using "client-side windows" all window manipulation by an application must go through GDK. Adobe needs to update Acroread to be compatible with this feature.

Here is a video demonstration from Alexander Larsson showing some of the effects made possible with 'client-side-windows'. You can also check out his blog post The return of client side windows:

The official documentation on ClientSideWindows is here.

No TrackBacks

TrackBack URL: http://blogs.gurulabs.com/cgi-bin/mt-tb.cgi/136

3 Comments

This seem to be necessary to be able to play embedded flash video in firefox now. Found a hint to this in the bug reports for flashplugin-nonfree package for Debian.

That's a really good post. I had the same problem with eclipse on Ubuntu 9.10. There are some dialogues, were nothing happens, when you press e.g. a next button.

It's nice to finally find some compact information on the background of this.

Useful post! This is also necessary for running some versions of Eclipse (e.g. the version that ships with the Xilinx SDK) under e.g. Ubuntu 9.10. Lots of horrible, weird side effects without it.

Leave a comment

About this Entry

This page contains a single entry by Dax published on October 20, 2009 2:03 PM.

eSATA vs SATA vs USB 2.0 Hard disks was the previous entry in this blog.

Resetting Movable Type Passwords using SQL is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.