New windows can be stacked above panels if they are created just after an override redirect window is created

Bug #1008020 reported by Sam Spilsbury
6
This bug affects 1 person
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

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)
Omer Akram (om26er)
no longer affects: compiz-core
Changed in compiz (Ubuntu):
importance: Undecided → High
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz at revision 3259

Changed in compiz:
status: In Progress → Fix Committed
Changed in compiz (Ubuntu):
status: In Progress → Triaged
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (7.9 KiB)

This bug was fixed in the package compiz - 1:0.9.8+bzr3319-0ubuntu1

---------------
compiz (1:0.9.8+bzr3319-0ubuntu1) quantal-proposed; urgency=low

  [ Didier Roche ]
  * debian/patches/ubuntu-config.patch:
    - refresh with latest trunk
  * debian/*docs:
    - remove the TODO copy now removed upstream
  * debian/compiz-plugins.install:
    - install stackswitch, trip plugins
  * debian/rules, debian/control:
    - remove the compiz gnome-control-center key sedding through metacity.
      Compiz now directly ships them.
    - we do not need metacity-common anymore as a build-dep then
  * debian/compiz-gnome.migrations, debian/control:
    - build-dep on dh-migrations and ship gconf -> gsettings migration file

  [ Matthieu Baerts (matttbe) ]
  * Update apport hook for python3 ; thanks to Edward Donovan (LP: #1013171)

  [ Timo Jyrinki ]
  * New upstream snapshot.
    - Fix Compiz crash in movementWindowOnScreen (LP: #1015151)
    - Start window decorator when decor plugin starts (LP: #1014461)
    - Fixed: Crash in compiz::wall::movementWindowOnScreen (LP: #1015151)
    - Don't waste memory leaving /bin/sh running (LP: #1015422)
    - Add reliable detection of the compiz bin directory (LP: #1015898)
    - Check if the window would actually paint before painting the shadow,
      since it is possible that another plugin could be inhibiting paint of
      the dock window. (LP: #1012956)
    - Don't insert the window into the server list above the window it was
      created above. (LP: #1008020) (LP: #886605)
    - makes compiz enhanced zoom and show mouse plugins considerably
      smoother to use (LP: #930783)
    - Don't set decoration contexts on undecorated windows, since that
      might be read later and code will assume the window is decorated when
      it isn't. (LP: #1015593)
    - Fix potentially unterminated string leading to an uninitialized memory
      read (LP: #1018302)
    - Lift the 31/32 character restriction on key names that was causing so
      many warnings. It's now 1024 characters according to glib. (LP: #1018730)
    - Don't print the result of BUILD_DEB. It prevents ccsm et al from
      installing. (LP: #1018916)
    - Use the XDamage extension more efficiently (the way it was designed to be
      used). This dramatically reduces CPU usage, reduces wakeups, and
      increases frame rates. It also solves at least one observed performance
      bug (LP: #1007299) and probably several more.
    - Do the initial work to get libcompizconfig under test. (LP: #990690)
    - Add support for initiating window picker in other than nomal mode. For
      now added only the additional 'All windows' picker (LP: #933776)
      (LP: #955035)
    - Fixes (LP: #1018602) : An invalid read when using g_variant_iter_loop.
    - Don't allow unbinds of textures kept around for animations in any case,
      not just resizing. (LP: #1016366)
    - Wait for the server to finish processing requests before doing a bind
      (LP: #1016367)
    - Using the next/previous bindings the wall plugin didn't calculate
      correctly the next workspace when it reaches the begin or the end of a
      row of workspaces, so it didn't jump to the n...

Read more...

Changed in compiz (Ubuntu):
status: Triaged → Fix Released
Changed in compiz:
status: Fix Committed → 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.