Created attachment 72055 [details]
Icon mode rendering bug
When the view is forced to scroll up after deleting many files (icon view mode), some of the icons are rendered on top of each other. I can produce this behaviour on KDE 4.8.3 Dolphin 2.0 every time when using the icon mode and forcing the view to scroll up.
How to produce:
1) create a new folder with many test files
2) switch to icon view mode and scroll to the bottom of the file list
3) delete enough files to force the view to scroll upwards
I attached a screenshot demonstrating the rendering bug.
Resetting assignee to default as per bug #305719
I can't reproduce this bug with Dolphin build from master 22.06.2013
I have recently (~ 2 weeks) seen this issue with master, but I am not sure if the commits done since then could have fixed it.
Thanks for your feedback!
I have found a way to reproduce it :)
Patch is already in progress! (Maybe for bug 319951 too)
Please test this patch https://git.reviewboard.kde.org/r/111486/ and maybe give some feedback, if it works for you too or if you find a regression (Hopefully not!). Thanks :)
Git commit 6e1a8774e9a3d99044fec4f5183b22baae5b1e63 by Frank Reininghaus.
Committed on 25/07/2013 at 20:15.
Pushed by freininghaus into branch 'KDE/4.11'.
Prevent that removing items can cause icons to overlap
When items are removed, new items may become visible because of that.
(a) Items *behind* the removed range. KItemListView may try to create
their widgets at their "imaginary" old positions and move them to
the new position with an animation.
(b) Items *before* the removed range, if the deletion causes the view
to scroll up. In that case, the "imaginary" old position and the new
position was equal, but KItemListView still tried to determine the
"old" position by adding the number of removed items to the index.
The result was that the widgets were created at completely wrong
positions, and no animation was started to fix this.
Thanks to Emmanuel for helping to find the cause of this bug!
M +16 -12 dolphin/src/kitemviews/kitemlistview.cpp