Merge lp://qastaging/~mhr3/unity/fix-961979 into lp://qastaging/unity

Proposed by Michal Hruby
Status: Merged
Approved by: Gord Allott
Approved revision: no longer in the source branch.
Merged at revision: 2317
Proposed branch: lp://qastaging/~mhr3/unity/fix-961979
Merge into: lp://qastaging/unity
Diff against target: 173 lines (+48/-16)
5 files modified
plugins/unityshell/src/PlacesGroup.cpp (+2/-1)
plugins/unityshell/src/ResultRendererTile.cpp (+14/-3)
plugins/unityshell/src/ResultViewGrid.cpp (+27/-9)
plugins/unityshell/src/ResultViewGrid.h (+4/-2)
tools/unity.cmake (+1/-1)
To merge this branch: bzr merge lp://qastaging/~mhr3/unity/fix-961979
Reviewer Review Type Date Requested Status
Gord Allott (community) Approve
Review via email: mp+102677@code.qastaging.launchpad.net

Commit message

Finetune priorities when updating dash results, prevents flickering

Description of the change

When searching in the dash, one can easily see the results flickering, this is expected in some cases, as the dash is aggregating results from multiple sources and they arrive at different times, but in some cases the changes are done in one transaction (for example in the applications lens view) and yet the dash still flickers - this branch fixes the latter.

It turned out that we're using incorrect priorities when queuing a relayout and/or redraw of the dash. The textures in the tiles of the results that were removed were destroyed, afterwards the view was redrawn, and after that (in idle callback) the tile renderers created new textures (mostly just grabbed from cache) for the updated results. This branch makes sure that the new textures are created before the redraw, which fixes the perceived flickering. There is also bump of priority for the places group titles, which causes that they're also updated before a redraw, which again saves us another frame.

No new tests, as the current ones still apply.

To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

>
> - cli.extend(['gdb', '-ex', 'run', '-ex', 'bt', '--batch', '--args'])
> + cli.extend(['gdb', '-ex', 'run', '-ex', '"bt full"', '--batch', '--args'])

seems like that shouldn't be there ;-)

Revision history for this message
Gord Allott (gordallott) wrote :

Looks okay to me

review: Approve
Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote :

Awesome work Michal. However I can 110% guarantee that this will regress again down the road. There needs to be some in depth comment in the code explaining this.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.