spdr870/gitextensions — pull request #846 by vcpp (2012-03-21 21:23:35+00:00)
Title: Performance improvement: select all files in commit form without excess redrawings

There was funny issue while selecting all files in commit form using Ctrl-A: selection jumped down and then rised selecting items one by one. It looked like a special animation, but at the same time it was annoying if you want just to select many items without waiting.

How to reproduce:
1. Run Git Extensions
2. Somehow do many changes/additions/deletions. For example, open large repo and mixed reset your current branch to some old commit, so your unchanged workdir will seem as changed.
3. Open commit form, note that there are few hundred unstaged files.
4. Put focus on unstaged files list and press Ctrl-A

cur: operation takes much time, up to minute or more depending on changes count.
exp: operation should be executed immediately

Technical details:
Algorithm used to call SuspendLayout/ResumeLayout without any effect: items redrawing and selected index changed event (causes diff refresh) occured for each item in the list. I just replaced them with BeginUpdate/EndUpdate methods.