[PATCH] comctl32/listview: Initialize marqueeRect from left-click coordinates before starting a marquee highlight

Hugh McMaster hugh.mcmaster at outlook.com
Mon Apr 26 05:59:51 CDT 2021


The infoPtr->marqueeRect structure is not currently initialized before the
marquee highlight sequence starts, resulting in the RECT having initial
coordinates of (0,0)-(0,0). These coordinates cause the first item in
the listview control to be identified as being within the range of the
marqueeRect's coordinates.

That item is then set to LVIS_SELECTED even though it is not part of the
marquee selection.

Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 dlls/comctl32/listview.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 799ec509f33..7d2b7874b84 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -4113,6 +4113,7 @@ static LRESULT LISTVIEW_MouseMove(LISTVIEW_INFO *infoPtr, WORD fwKeys, INT x, IN
 
                         /* Begin selection and capture mouse */
                         infoPtr->bMarqueeSelect = TRUE;
+                        infoPtr->marqueeRect = rect;
                         SetCapture(infoPtr->hwndSelf);
                     }
                 }
-- 
2.31.1




More information about the wine-devel mailing list