Applications which create multiple windows that are transients of each other can be given invalid stack positions

Bug #858625 reported by Sam Spilsbury
6
This bug affects 1 person
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::windows, so that stacking request becomes a no-op. In this case
  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.

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
David Barth (dbarth)
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
Revision history for this message
Launchpad Janitor (janitor) wrote :

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:
   - 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-decorator (LP: #856096)
 -- Didier Roche <email address hidden> Wed, 28 Sep 2011 14:15:21 +0200

Changed in compiz (Ubuntu):
status: Fix Committed → Fix Released
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
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.