New windows can be stacked above panels if they are created just after an override redirect window is created
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
High
|
Sam Spilsbury | ||
compiz (Ubuntu) |
Fix Released
|
High
|
Sam Spilsbury |
Bug Description
Its possible for new windows to be stacked above panels if they are created just after an override redirect window is created and just after the window before it was restacked to the correct position (race condition). In this case, serverPrev will be set to the window it should be stacked above (correct) and the window will request to restack above the same window. In reality, the window is still at the top of the stack and not just above serverPrev because it was never restacked yet.
Steps to reproduce at least for me:
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
Related branches
- Daniel van Vugt: Approve
- Robert Carr: Pending (testing) requested
- Tim Penhey: Pending requested
- Andrea Cimitan: Pending requested
-
Diff: 255 lines (+55/-21)9 files modifiedinclude/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)
Changed in compiz: | |
status: | New → Confirmed |
status: | Confirmed → In Progress |
importance: | Undecided → High |
assignee: | nobody → Sam Spilsbury (smspillaz) |
milestone: | none → 0.9.8.0 |
Changed in compiz-core: | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Sam Spilsbury (smspillaz) |
milestone: | none → 0.9.7.10 |
Changed in compiz (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Sam Spilsbury (smspillaz) |
no longer affects: | compiz-core |
Changed in compiz (Ubuntu): | |
importance: | Undecided → High |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
Fix committed into lp:compiz at revision 3259