[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.
This commit is contained in:
Miguel Almeida 2025-03-11 12:49:39 +00:00 committed by GitHub
parent 14f8f7e3bd
commit b45debb93a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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 */