Comment 7 for bug 153676

Revision history for this message
Bogdan Butnaru (bogdanb) wrote : Re: full-screen windows sometimes hide windows that should be above them

You have to download the source to compiz, make a small change, compile and install it.

To download:
$ apt-get source compiz

The change: Find in the file src/window.c these lines:

  if (stackingMode != CompStackingUpdateModeNone)
    {
 Bool aboveFs;
 aboveFs = (stackingMode == CompStackingUpdateModeAboveFullscreen);
 mask |= addWindowStackChanges (w, &xwc, findSiblingBelow (w, aboveFs));
    }

And change the line that starts with aboveFs to:

 aboveFs = (stackingMode == CompStackingUpdateModeAboveFullscreen) || (stackingMode == CompStackingUpdateModeInitialMap);

Then you need to compile it:

$ sudo apt-get build-dep compiz
$ ./configure
$ make

(You need to be in the "root" directory of the package, which gets created by "apt-get source" in the first step. It's the one above the src directory. If you compile it several times, you don't need to run the first command each time; once is enough.)

Then you need to install it, which is actually the most annoying part. You just run

$ sudo make install

and it puts the new compiz in /usr/local/bin. That's easy enough, but you have to modify the /usr/bin/compiz file, which is a script, to run yours instead of Ubuntu's. If you know a tiny bit of scripting it's easy though. The annoying thing is that on every update of compiz the file gets re-written. I just keep a copy somewhere and replace it when that happens, but I'm sure there must be a better way...

(Note that in the package installed by Ubuntu the executable is called "compiz.real", and "compiz" is a script that runs it with some arguments. The compiled one has the executable called "compiz" and no script (that I can see). I suppose you could play with the ./configure script, if you're so inclined.)