[Bug 9491] CListCtrl:GetSubItemRect doesn't work for the label row

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Dec 30 13:28:01 CST 2012


http://bugs.winehq.org/show_bug.cgi?id=9491

Daniel Jelinski <djelinski1 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |djelinski1 at gmail.com

--- Comment #10 from Daniel Jelinski <djelinski1 at gmail.com> 2012-12-30 13:28:01 CST ---
There are several issues here:
- native GetSubItemRect does not even check if an item exists, it just returns
top and bottom coordinates of where an item would be if it existed. Item -1 is
not for header, it's for an item above item 0. You may easily check that by
adding so many items that scrollbar appears, then scrolling down, then clicking
on the header. In fact, any item number (negative or positive, related to
existing item or not) works just as well. 
- on a related note, for LVIR_ICON the returned top, bottom and left bounds are
the same as for LVIR_BOUNDS, right is equal to left + ImageList icon width. I'm
not sure yet if LVS_EX_SUBITEMIMAGES plays any role here (tested with delphi,
which doesn't expose that setting)
- Second issue, which appears only when the first one is fixed, is that Wine's
row height is one pixel smaller than native's
- Issue with all rows blue is due to Wine's redraw logic - on insert it scrolls
items instead of redrawing them. Changing ScrollWindowEx to InvalidateRect in
LISTVIEW_ScrollOnInsert results in correct colors.
- Issue with only first column painted blue is because native comctl
initializes NMLVCUSTOMDRAW structure only once per item, and then reuses the
same structure for each subitem, while Wine creates and initializes a new
structure for each subitem.

-- 
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