[compiz] window stacking bug #3

Bogdan Butnaru bogdanb at gmail.com
Wed Nov 21 14:22:44 PST 2007


While I was posting the previous two window stacking bug reports, I
noticed another, similar problem:
(All this is about the latest Compiz from GIT, with "redirect
full-screen" _disabled_.)

Open two windows that you can easily tell apart. (It works with two
terminals, as long as they have different text on them.) Make them
both full-screen; you'll need the Extra WM Actions plugin. (F11,
Alt+Tab, F11.) The point is that you're supposed to have the two
topmost windows in full-screen mode, say A on top of B. The focus is
of course on A. Now "un-full-screen-ize" (?) the top window (A), by
pressing F11 again.

I would expect in that case the stacking order would remain unchanged,
i.e. a non-full-screen A on top of a full-screen B. However, A is
pushed below B! As in the previous bugs I posted, it keeps the focus,
though. You can see this by making the B window transparent before the
test, so you can see the typing in the A window through it.

In this case, after full-screen is turned off, the window is passed to
updateWindowAttributes() with the
stackingMode=CompStackingUpdateModeNormal. (The problematic call is in
the file "extrawm.c"). The function is fullscreenWindow(CompWindow*,
int). At the end (line 71 in my version) there's a call to

       updateWindowAttributes (w, CompStackingUpdateModeNormal)

However, changing from full-screen to non-full-screen should not
change the stacking. So I believe the call should be changed to:

       updateWindowAttributes (w, CompStackingUpdateModeNone)

I tried it, and the stacking works correctly.

-- Bogdan Butnaru — bogdanb at gmail.com
"I think I am a fallen star, I should wish on myself." – O.

PS. Is this really the right place to send these mails?


More information about the compiz mailing list