compiz window stacking bug (toggling full-screen)

Bug #173303 reported by Bogdan Butnaru
4
Affects Status Importance Assigned to Milestone
compiz (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

Binary package hint: compiz

(All this is about the latest Compiz from GIT, with "redirect
full-screen" _disabled_.)

Open two windows that you can easily tell apart. (It works with two
terminals, as long as they have different text on them.) Make them
both full-screen; you'll need the Extra WM Actions plugin. (F11,
Alt+Tab, F11.) The point is that you're supposed to have the two
topmost windows in full-screen mode, say A on top of B. The focus is
of course on A. Now "un-full-screen-ize" (?) the top window (A), by
pressing F11 again.

I would expect in that case the stacking order would remain unchanged,
i.e. a non-full-screen A on top of a full-screen B. However, A is
pushed below B! As in the previous bugs I posted, it keeps the focus,
though. You can see this by making the B window transparent before the
test, so you can see the typing in the A window through it.

In this case, after full-screen is turned off, the window is passed to
updateWindowAttributes() with the
stackingMode=CompStackingUpdateModeNormal. (The problematic call is in
the file "extrawm.c"). The function is fullscreenWindow(CompWindow*,
int). At the end (line 71 in my version) there's a call to

      updateWindowAttributes (w, CompStackingUpdateModeNormal)

However, changing from full-screen to non-full-screen should not
change the stacking. So I believe the call should be changed to:

      updateWindowAttributes (w, CompStackingUpdateModeNone)

I tried it, and the stacking works correctly.

Related branches

Bogdan Butnaru (bogdanb)
Changed in compiz:
assignee: nobody → bogdanb
Revision history for this message
Bogdan Butnaru (bogdanb) wrote :

The attached patch fixes the bug above.

Changed in compiz-fusion-plugins-extra:
status: New → In Progress
Bogdan Butnaru (bogdanb)
description: updated
Bogdan Butnaru (bogdanb)
Changed in compiz-fusion-plugins-extra:
assignee: bogdanb → nobody
status: In Progress → New
Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

To get your fix included in Ubuntu, it would help if you tried transforming it into a debdiff (http://wiki.ubuntu.com/PackagingGuide/Recipes/Debdiff) and submit it for review (http://wiki.ubuntu.com/SponsorshipProcess). If you prefer somebody else to do that, that's fine - please just indicate if you're available to do that.

Revision history for this message
Travis Watkins (amaranth) wrote :

This is not the right place to fix this, the fix should be in core.

Changed in compiz:
importance: Undecided → Low
status: New → Triaged
Revision history for this message
Travis Watkins (amaranth) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.7.2-0ubuntu2

---------------
compiz (1:0.7.2-0ubuntu2) hardy; urgency=low

  [ Travis Watkins ]
  * debian/patches/036_blacklist_ati_on_laptop.patch:
    - don't start compiz if using the ati or radeon driver
      and using a laptop as mobility cards have issues (LP: #197135)
  * debian/patches/037_fullscreen_stacking_fixes.patch:
    - keep window on top of fullscreen windows during move
    - when changing from fullscreen to non-fullscreen keep
      window on top of other fullscreen windows (LP: #173303)

  [ Michael Vogt ]
  * debian/patches/040_resolve-animation-fade-conflict_from_upstream.patch:
    - patch from Erkin Bahceci to resolve conflict between fade and
      animation plugin (thanks!)
  * debian/compiz-decorator:
    - added compiz-decorator script (thanks to Jigish Gohil)
  * debian/patches/029_compiz_manager_decoration.patch:
    - remove starting of the decorator from compiz-manager, this
      is the job of the decorator plugin now
  * debian/patches/029_compiz_manager_nvidia_settings.patch:
    - check for nvidia-settings before using it (thanks to
      Daniel Halhler, LP: #199944)
  * debian/patches/029_default_options:
    - use compiz-decorator as default decorator command
  * debian/patches/032_compiz_manager_default_window_manager.patch:
    - updated (conflicted with 029_compiz_manager_decoration)
  * debian/rules:
    - install compiz-decorator
  * debian/patches/041-start-decorator.patch:
    - cherry pick git commit 8cde7903f to start decorator early

 -- Michael Vogt <email address hidden> Tue, 11 Mar 2008 22:14:48 +0100

Changed in compiz:
status: Triaged → 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.