Merge lp:~vanvugt/compiz/fix-201681-wall into lp:compiz/0.9.9
Status: | Merged |
---|---|
Approved by: | Brandon Schaefer |
Approved revision: | 3487 |
Merged at revision: | 3492 |
Proposed branch: | lp:~vanvugt/compiz/fix-201681-wall |
Merge into: | lp:compiz/0.9.9 |
Diff against target: |
21 lines (+2/-2) 1 file modified
plugins/wall/src/wall.cpp (+2/-2) |
To merge this branch: | bzr merge lp:~vanvugt/compiz/fix-201681-wall |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Brandon Schaefer (community) | Approve | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Compiz Maintainers | Pending | ||
Review via email: mp+136879@code.launchpad.net |
Commit message
When dragging a window between workspaces, don't warp the pointer by a
mysterious 10 pixels. Instead warp the pointer by 1 so it goes from one edge
to the next without getting ahead of the window drag. (LP: #201681)
Description of the change
This provides a dramatic improvement over the old behaviour but it's still imperfect. In some cases the warp will be a pixel or two off. This is because we're always assuming it should be 1 pixel per flip, but we have no guarantee this is right because we don't have the exact delta from the move plugin. All initateFlip tells you is the direction.
And you can't calculate your own delta "dx = pointerX - lastPointerX". That is almost always zero because core likes to reset "lastPointerX = pointerX" on every event loop.
Yet another reason why all window movement should be absolute and not relative.
This looks okay in its current form, the surrounding code feels a little weird but I can't think of anything better.
Have you looked into getting this under test?