diff options
author | Tom <tomut@yahoo.com> | 2020-07-11 07:02:03 -0600 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-07-13 19:49:34 +0200 |
commit | f266f0e880c88eeca2b25b9b7ac648049b5db512 (patch) | |
tree | 4f746103b136ed5d4eeb6f3be9a053a7fd704f41 /Libraries/LibDebug | |
parent | b778804d207dc2d774e93e37b6ccfa0765417b63 (diff) | |
download | serenity-f266f0e880c88eeca2b25b9b7ac648049b5db512.zip |
LibGUI: Improve IconView performance with large selections
This implements the following optimizations:
* Rather than clearing a HashTable of selected items and re-populating
it every time the selection rectangle changes, determine the delta
by only examining the items that might be in the area where the
selection may have changed compared to the previous area. Then
only add/remove selection items as needed.
* When painting, only query and paint the items actually visible.
Also, keep a local cache of item information such as calculated
rectangles and selection state, so it doesn't have to be calculated
over and over again.
Diffstat (limited to 'Libraries/LibDebug')
0 files changed, 0 insertions, 0 deletions