http://bugs.winehq.org/show_bug.cgi?id=12701
Igor Tarasov tarasov.igor@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #19125|0 |1 is obsolete| |
--- Comment #13 from Igor Tarasov tarasov.igor@gmail.com 2009-02-17 06:37:09 --- Created an attachment (id=19512) --> (http://bugs.winehq.org/attachment.cgi?id=19512) Cumulative patch
Okay, I think I've figured everything out and this patch fixes all wrong behavour:
1. Slowdown when destroying virtual listview: the problem as I've said earlier was that listview_deleteall was issuing notification for each element (which should not be done, according to MSDN). So, I've moved sending that notification in if block and now notifications are being sent only for not virtual listviews. Result: the listview is being destroyed instantly. Just as with native comctl32.
2. Slow search. As I've found in MSDN here: http://msdn.microsoft.com/en-us/library/bb774735(VS.85).aspx , listview control should not search for virtual listviews. Instead, it should send LVN_ODFINDITEM to the application. And guess what? It was unimplemented in wine. So, I've added it. Result: search works instantly, as with native comctl.
3. But before that DrkShadow fixed incorrect behaviour of LISTVIEW_FindItemW. This was also added to this patch.
So, now that listview warks perfectly as native comctl32.
I have just one question: I should send it to wine-patches in one patch, or in 2-3?