[Bug 12701] New: listview: works slow and wrong

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Apr 20 17:15:27 CDT 2008


           Summary: listview: works slow and wrong
           Product: Wine
           Version: 0.9.60
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: comctl32
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: tarasov.igor at gmail.com

Created an attachment (id=12353)
 --> (http://bugs.winehq.org/attachment.cgi?id=12353)
7zipped log of warn+all,+listview on wine 0.9.60

Here is a deal: There is a list view containing 300K+ items. Looks like this:
http://polosatus.ru/wine/listview.png It's a full list of all words indexed in
some database.

When using native comctl32.dll, you just type the text in and the list
*immediately* jumps to the item that starts from the letters you've entered.
Works pretty simple and swift and no CPU load.

But when you use builtin comctl32.dll there are 3 problems:

1. It hangs on each keypress. In log (77Mb) you may see a lot of iterations
like this:

trace:listview:ranges_cmp range1=[22765, 22766], range2=[25271, 25272], cmp=-1
trace:listview:ranges_contain (nItem=22766)
trace:listview:ranges_assert *** Checking ranges_contain:2691:before contain
trace:listview:ranges_dump    [25271, 25272]
trace:listview:ranges_assert --- Done checking---

And each keypress results in new rescan, as it hangs pretty well even if the
highlighted item matches new typed letter. And the further first match is, the
longer it hangs on each keypress.

2. It searches not items STARTING with enterred text, but items CONTAINING it.
Both of these bugs make usage of this box a nonsense. When you try to find, for
instance an item "most" and you type "most" it would stop at the point "almost"
and so, you have to search it manually by scrolling.

3. When I close this box, it just hangs again for a few secs (and generates
another 50M+ to log).

When generating log, I've typed only three letters: "alt" and it was enough to
generate 20M+ log. Another 55M+ where generated when I clicked close button.

Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the wine-bugs mailing list