RestackAnimation based focus-change animations raise window too soon
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-
I can confirm this problem on 12.04 and an intel GPU