Applications which create multiple windows that are transients of each other can be given invalid stack positions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz Core |
Fix Released
|
Critical
|
Sam Spilsbury | ||
Unity |
Fix Released
|
Critical
|
Sam Spilsbury | ||
compiz (Ubuntu) |
Fix Released
|
High
|
Sam Spilsbury | ||
unity (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Windows A, B and C map (placed on top), and must stack relative to each other
Window A gets stacked beneath D (which is a panel),
Window B should be stacked above A,
Window C should be stacked above B,
What happened was that updateAttributes would be called and
request to put window B above A, which it was already above in
CompScreen:
we check if the window is pending a restack and then request to put it
above the same window it was already a sibling to if findSiblingBelow found
that to be the case.
This could case GIMP and Libreoffice to be stacked above panels in some cases on startup, since those windows must be placed at the top of the stack on startup, and if valid stack positions are not given to them by updateAttributes because we filtered them out as no-ops, then they would remain at the top of the stack.
Related branches
- Robert Carr (community): Approve
-
Diff: 12 lines (+1/-2)1 file modifiedsrc/window.cpp (+1/-2)
Changed in compiz-core: | |
status: | New → Fix Committed |
Changed in unity: | |
status: | New → Fix Committed |
status: | Fix Committed → In Progress |
Changed in compiz-core: | |
status: | Fix Committed → In Progress |
Changed in compiz (Ubuntu): | |
status: | New → In Progress |
Changed in compiz-core: | |
assignee: | nobody → Sam Spilsbury (smspillaz) |
Changed in unity: | |
assignee: | nobody → Sam Spilsbury (smspillaz) |
Changed in compiz (Ubuntu): | |
assignee: | nobody → Sam Spilsbury (smspillaz) |
Changed in compiz-core: | |
importance: | Undecided → Critical |
Changed in unity: | |
importance: | Undecided → Critical |
Changed in compiz-core: | |
milestone: | none → 0.9.5.96 |
Changed in unity: | |
milestone: | none → 4.18.0 |
Changed in unity: | |
milestone: | 4.18.0 → 4.20.0 |
Changed in compiz (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in unity: | |
status: | In Progress → Fix Committed |
Changed in compiz-core: | |
status: | In Progress → Fix Committed |
Changed in compiz (Ubuntu): | |
milestone: | none → ubuntu-11.10 |
importance: | Undecided → High |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in compiz-core: | |
milestone: | 0.9.5.96 → 0.9.7.0 |
Changed in compiz-core: | |
status: | Fix Committed → Fix Released |
Changed in unity (Ubuntu): | |
status: | New → Fix Released |
This bug was fixed in the package compiz - 1:0.9.6-0ubuntu1
---------------
compiz (1:0.9.6-0ubuntu1) oneiric; urgency=low
* New upstream release 0.9.6: decorator (LP: #856096)
- Windows which are marked transients of docks should be treated like docks (LP: #860397)
- Applications which create multiple windows that are transients of each other can be given invalid stack positions (LP: #858625)
- race condition in configureXWindow causes unpredicatable window geometry changes (LP: #860304)
- invisible window when a window is mapped but not yet drawn on by the process mapping it (LP: #860286)
- resizing bugs with xterm (LP: #854725)
- Cannot open a window that starts iconified (LP: #732997)
- maximized windows fail to update their input extents when undecorated (LP: #853734)
- Clicking on a tweet/message link sometimes does not work (LP: #790565)
- crash on closing a window (LP: #856015)
- Windows move to 0,0 on compiz restarts (LP: #858629)
- windows that are decorated while resizing can cause incorrect resize results (LP: #860306)
- remove transient window handling from unity-window-
-- Didier Roche <email address hidden> Wed, 28 Sep 2011 14:15:21 +0200