From b45debb93aa6a5da07b3d5563194e3d700cfffef Mon Sep 17 00:00:00 2001 From: Miguel Almeida Date: Tue, 11 Mar 2025 12:49:39 +0000 Subject: [PATCH] [COMCTL32] Fix shift-selecting files not working as expected in small/large icons views (#7729) CORE-10386 Fixes the behavior when selecting multiple files in a folder with the Shift key, while using either the Large Icons or Small Icons view, so that it is consistent with how it works on Windows. Proposed changes: Disable the specialized code for these views in LISTVIEW_SetGroupSelection, using the same code as for the list and details views, which also works fine for them. --- dll/win32/comctl32/listview.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dll/win32/comctl32/listview.c b/dll/win32/comctl32/listview.c index c94b85fac64..eb165e835c4 100644 --- a/dll/win32/comctl32/listview.c +++ b/dll/win32/comctl32/listview.c @@ -3725,8 +3725,10 @@ static void LISTVIEW_SetGroupSelection(LISTVIEW_INFO *infoPtr, INT nItem) item.state = LVIS_SELECTED; item.stateMask = LVIS_SELECTED; +#ifndef __REACTOS__ if ((infoPtr->uView == LV_VIEW_LIST) || (infoPtr->uView == LV_VIEW_DETAILS)) { +#endif if (infoPtr->nSelectionMark == -1) { infoPtr->nSelectionMark = nItem; @@ -3740,6 +3742,7 @@ static void LISTVIEW_SetGroupSelection(LISTVIEW_INFO *infoPtr, INT nItem) sel.upper = max(infoPtr->nSelectionMark, nItem) + 1; ranges_add(selection, sel); } +#ifndef __REACTOS__ } else { @@ -3765,6 +3768,7 @@ static void LISTVIEW_SetGroupSelection(LISTVIEW_INFO *infoPtr, INT nItem) } iterator_destroy(&i); } +#endif /* disable per item notifications on LVS_OWNERDATA style FIXME: single LVN_ODSTATECHANGED should be used */