RestackAnimation based focus-change animations raise window too soon

Bug #932872 reported by Matthew Walker
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Compiz
New
Undecided
Unassigned
Compiz Main Plugins
New
Undecided
Unassigned

Bug Description

Description:
Suppose a window (w1) is open, the currently active window, and partially covering another window (w2). The user clicks w2, changing the focus.
When the Dodge/Focus focus changing animations are enabled and occur, w2 should be drawn over top of w1 halfway through the animation. Instead, w2 is immediately drawn on top of w1, and THEN animation occurs. It gives the ridiculous effect (in the case of Dodge) of w2 being selected as the focus window, and then the two windows strangley moving back and forth once.

Reproduction:
ccsm -> Animations -> Focus Animations -> edit the default entry in the table ->
change time to: 2500 ms (to make it easier to see)
change effect to: Dodge or Fade (happens with both animations)
now, with any two normal windows open, place one so that it is partially covering the other. Click on the window which is currently not focused. The bug should appear.

This bug has been tested for and confirmed on the following systems:

Ubuntu 12.04 Precise Pangolin (Daily Build); Ubuntu 11.10 Oneiric Ocelot
AMD Fusion CPU/GPU
With both the opensource drivers, and fglrx-dev
Compiz 9.5 and 9.7

Ubuntu 11.10 Oneiric Ocelot
Nvidia GPU-based MacBook Pro
With the open source drivers
Compiz 9.5

Other:
I would be willing to try to help fix this bug myself, but I am having some problems understanding the Compiz source. Both Dodge and Fade inherit from RestackAnimation, according to the class hierarchy depicted in compiz-plugins-main/animation/docs. Therefore, I imagine the bug lies there.

Revision history for this message
Linus Seelinger (s-linus) wrote :

I can confirm this problem on 12.04 and an intel GPU

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.