Merge lp:~dandrader/unity8/workaroundAnimatedSpriteBug into lp:unity8
Status: | Merged |
---|---|
Approved by: | Albert Astals Cid |
Approved revision: | 2444 |
Merged at revision: | 2483 |
Proposed branch: | lp:~dandrader/unity8/workaroundAnimatedSpriteBug |
Merge into: | lp:unity8 |
Prerequisite: | lp:~dandrader/unity8/consecutiveCustomCursors |
Diff against target: |
60 lines (+2/-16) 2 files modified
plugins/Cursor/CursorImageInfo.cpp (+2/-12) plugins/Cursor/CursorImageInfo.h (+0/-4) |
To merge this branch: | bzr merge lp:~dandrader/unity8/workaroundAnimatedSpriteBug |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Needs Fixing | |
Albert Astals Cid (community) | Approve | ||
Review via email: mp+296859@code.launchpad.net |
Commit message
Work around AnimatedSprite infinite loop bug
https:/
Don't wait until the next event loop iteration before you update the other properties. If you do so, scenegraph thread will sync with an inconsistent state: new image URL + old cursor info. So you would risk having a frameWidth or frameHeight larger than the new image size, hitting the above mentioned bug.
The timer was there just to avoid (re)loading twice in case both
themeName and cursorName changes. But that's such a rare case that
it's not worth optimizing for it.
Description of the change
* Are there any related MPs required for this MP to build/function as expected? Please list.
No
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes.
The easiest way to test is:
$ bzr branch lp:~dandrader/+junk/animatedDemos
$ cd animatedDemos/
$ qmake && make
$ cd ..
$ qmlscene -I $PWD CursorShapes.qml --desktop_
Then move the cursor between a custom cursor slot (eg. boat or football) and a named cursor slot or the window border. With this patch, it will just work. With trunk (or with the prereq branch), it will hang.
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
* If you changed the UI, has there been a design review?
* Did you perform an exploratory manual test run of the code change and any related functionality?
Yes
* Did CI run pass? If not, please explain why.
Waiting for CI to finish.