After installing the compiz package 1:0.9.7.8-0ubuntu1.1 from the precise-proposed repository gtk-window-decorator started crashing and leaving the windows without any decoration. I reproduced the issue on several up-to-date Ubuntu 12.04 (Precise) 64bit installations.
From the cherry-picked patches included in the mentioned proposed compiz package I identified the one for bug LP: #929989 as the cause of the crashes. Rebuilding the proposed package after dropping that patch makes the crashes go away.
1. Open IntelliJ (a Java IDE) with a project.
2. Hit Ctrl+N (or Navigate/Class... menu) and wait for the small popup to show up.
3. Start typing and wait for class name suggestions to show up.
4. Hit Esc to close the popup window.
5. Observe that system-wide all window decorations are gone (window titlebars are missing, i.e. no close/maximize/minimize button). You may have to repeat step 2-4 a few times until the bug gets triggered.
Window decorations do not disappear after closing the popup with Esc.
No direct regression potentials.
An attempt to collect stacktrace:
mjuhasz@desktop:~$ gdb /usr/bin/gtk-window-decorator
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
Reading symbols from /usr/bin/gtk-window-decorator...(no debugging symbols found)...done.
(gdb) run --replace
Starting program: /usr/bin/gtk-window-decorator --replace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffef1a9700 (LWP 7631)]
[New Thread 0x7fffee9a8700 (LWP 7632)]
The program 'gtk-window-decorator' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 10112 error_code 3 request_code 20 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
[Thread 0x7fffee9a8700 (LWP 7632) exited]
[Thread 0x7fffef1a9700 (LWP 7631) exited]
[Inferior 1 (process 7628) exited with code 01]