[regression] window movement is erratic and buggy (briefly on startup)
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| Compiz Core |
Fix Released
|
High
|
Daniel van Vugt | ||
| Compiz Main Plugins |
Invalid
|
Undecided
|
Sam Spilsbury | ||
Bug Description
When I start compiz (latest lp:compiz-core), moving windows with the "move" plugin doesn't follow the mouse very well. Windows jump erratically and mostly move only about 20% of the distance the mouse pointer moves.
Then after a few seconds of switching windows, it fixes itself. The move plugin honours the mouse movements correctly thereafter.
Related branches
- Alan Griffiths: Approve
-
Diff: 23 lines (+1/-11) 1 file modifiedapiplugins/move/src/move.cpp (+1/-11)
- Daniel van Vugt: Approve
- Alan Griffiths: Approve
- Sam Spilsbury: Pending requested
-
Diff: 2394 lines (+509/-779) 19 files modifiedapiplugins/composite/src/window.cpp (+15/-35)
plugins/decor/src/decor.cpp (+66/-53)
plugins/decor/src/decor.h (+2/-3)
plugins/move/src/move.cpp (+2/-4)
plugins/opengl/src/paint.cpp (+11/-18)
plugins/opengl/src/privates.h (+7/-1)
plugins/opengl/src/window.cpp (+39/-17)
plugins/place/src/constrain-to-workarea/src/constrain-to-workarea.cpp (+4/-6)
plugins/place/src/place.cpp (+19/-24)
plugins/resize/src/resize.cpp (+1/-11)
plugins/resize/src/resize.h (+0/-2)
plugins/wobbly/src/wobbly.cpp (+5/-4)
src/event.cpp (+1/-1)
src/privatewindow.h (+7/-8)
src/screen.cpp (+4/-2)
src/window.cpp (+270/-543)
src/window/geometry/include/core/windowgeometry.h (+6/-0)
src/window/geometry/tests/window-geometry/src/test-window-geometry.cpp (+10/-0)
src/windowgeometry.cpp (+40/-47)
- Daniel van Vugt: Needs Fixing
- Sam Spilsbury: Pending requested
- Alan Griffiths: Pending requested
-
Diff: 2780 lines (+584/-844) 21 files modifiedapiplugins/composite/src/window.cpp (+19/-39)
plugins/decor/src/decor.cpp (+80/-59)
plugins/decor/src/decor.h (+4/-3)
plugins/move/src/move.cpp (+10/-12)
plugins/opengl/src/paint.cpp (+11/-18)
plugins/opengl/src/privates.h (+7/-1)
plugins/opengl/src/window.cpp (+39/-17)
plugins/place/src/constrain-to-workarea/src/constrain-to-workarea.cpp (+4/-6)
plugins/place/src/place.cpp (+19/-24)
plugins/resize/src/resize.cpp (+8/-18)
plugins/resize/src/resize.h (+0/-2)
plugins/wobbly/src/wobbly.cpp (+37/-40)
plugins/wobbly/src/wobbly.h (+2/-0)
src/actions.cpp (+2/-2)
src/event.cpp (+1/-1)
src/privatewindow.h (+7/-8)
src/screen.cpp (+4/-2)
src/window.cpp (+274/-545)
src/window/geometry/include/core/windowgeometry.h (+6/-0)
src/window/geometry/tests/window-geometry/src/test-window-geometry.cpp (+10/-0)
src/windowgeometry.cpp (+40/-47)
- Daniel van Vugt: Needs Resubmitting
- Alan Griffiths: Needs Fixing
-
Diff: 1316 lines (+247/-559) 9 files modifiedapiinclude/core/window.h (+2/-2)
plugins/composite/src/window.cpp (+16/-16)
plugins/decor/src/decor.cpp (+15/-15)
plugins/move/src/move.cpp (+1/-11)
plugins/opengl/src/window.cpp (+2/-2)
src/event.cpp (+2/-2)
src/privatewindow.h (+10/-12)
src/window.cpp (+195/-495)
src/windowgeometry.cpp (+4/-4)
Indeed, this is the geometry race condition that I was trying to fix earlier. Core does its best to handle the inherent contradiction between synchronous and asynchronous geometry updates, although in some cases this fails (race condition).
I think the best way to fix this, as I have mentioned earlier is to force all plugins to use the asynchronous path. Though ... we are running out of time for this.
Why does it happen on startup and then fix itself? And why does it only seem to happen with moves starting with a click? I can't reproduce the bug if I use Alt+F7 and then move the window.
+ [regression] window movement is erratic and buggy (briefly on startup)
Omer, I suspect this fix caused regression bug 923683. Admittedly, that bug is not as bad as this one. But that bug does seem to affect systems that this one did not.
I don't think this bug fix should be in an SRU (yet).
Ignore that comment. It's meant to go in bug 764330.
Fix committed to lp:compiz-plugins-main at revision 33.
(It was committed without any review. Not sure what/how it fixes anything)
Actually the fix for this bug is in compiz-core. compiz-plugins-main was never related.
The confusion came from a vague and misleading comment on r33.