Merge lp:~compiz-team/compiz/compiz.fix_1008020 into lp:compiz/0.9.8
Status: | Merged |
---|---|
Merged at revision: | 3259 |
Proposed branch: | lp:~compiz-team/compiz/compiz.fix_1008020 |
Merge into: | lp:compiz/0.9.8 |
Diff against target: |
255 lines (+55/-21) 9 files modified
include/core/abiversion.h (+1/-1) include/core/screen.h (+2/-1) include/core/window.h (+1/-0) src/event.cpp (+10/-2) src/privatescreen.h (+4/-2) src/privatescreen/tests/test-privatescreen.cpp (+2/-1) src/privatewindow.h (+1/-1) src/screen.cpp (+24/-7) src/window.cpp (+10/-6) |
To merge this branch: | bzr merge lp:~compiz-team/compiz/compiz.fix_1008020 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt | Approve | ||
Robert Carr | testing | Pending | |
Tim Penhey | Pending | ||
Andrea Cimitan | Pending | ||
Review via email:
|
This proposal supersedes a proposal from 2012-06-18.
Description of the change
Don't insert the window into the server list above the window it was
created above.
The server list might have been modified by the time that we process the
create event, and as such there is a case where a window can be inserted
into the server list above another window and not at the top (the default
for where windows are created) if that window is pending a restack.
When updateAttributes is called later, putting it above the correct window
will silently fail, because it is already there in the server list, even
though a restack was never issued to put it there.
We really need to do something about the fact that the stacking code is not under test. An email was sent about smoke testing window stacking for now until we can get some kind of sensible unit testing story.
I tested this against lp:~smspillaz/+junk/stackingtest (using proc test-stacking-ops which creates tons of new windows and reshuffles them, excersizing this code). Nothing went above panels or screensavers after the fixes were applied.
Case from bug 1008020 that I know this fixed:
1. Log in to unity-2d or gnome-classic
2. kill unity-2d-shell (so just the panel remains)
3. Open nautilus and repeatedly hit Ctrl-N to create a new window really quickly
4. Windows will eventually go above the panel
Using stackingtest in a loop, I find windows appear over the top of the lock screen even with this fix. But only when using the animation plugin. Is that still what's being fixed here or a different issue?
I see exactly the same stacking behaviour with and without this fix...