[regression] window movement is erratic and buggy (briefly on startup)
Bug #923683 reported by
Daniel van Vugt
This bug affects 4 people
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
lp://staging/~vanvugt/compiz-core/fix-923683
- Alan Griffiths: Approve
-
Diff: 23 lines (+1/-11)1 file modifiedplugins/move/src/move.cpp (+1/-11)
lp://staging/~smspillaz/compiz-core/compiz-core.work_923683
- Daniel van Vugt: Approve
- Alan Griffiths: Approve
- Sam Spilsbury: Pending requested
-
Diff: 2394 lines (+509/-779)19 files modifiedplugins/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)
Superseded
for merging
into
lp://staging/compiz-core
- Daniel van Vugt: Needs Fixing
- Sam Spilsbury: Pending requested
- Alan Griffiths: Pending requested
-
Diff: 2780 lines (+584/-844)21 files modifiedplugins/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)
Superseded
for merging
into
lp://staging/compiz-core/0.9.5
- Daniel van Vugt: Needs Resubmitting
- Alan Griffiths: Needs Fixing
-
Diff: 1316 lines (+247/-559)9 files modifiedinclude/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)
Changed in compiz-core: | |
importance: | Undecided → High |
milestone: | none → 0.9.7.0 |
Changed in compiz-core: | |
assignee: | Sam Spilsbury (smspillaz) → Daniel van Vugt (vanvugt) |
status: | New → In Progress |
Changed in compiz-core: | |
status: | In Progress → Fix Committed |
summary: |
- window movement is erratic and buggy (briefly on startup) + [regression] window movement is erratic and buggy (briefly on startup) |
Changed in compiz-core: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
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.