[0.4.14][COMCTL32] Listview: marqueeRect before starting highlight (#5555)

port back:
0.4.15-dev-6456-g 918a818071 [WINESYNC][COMCTL32] Listview: Initialize marqueeRect from left-click coordinates before starting a marquee highlight (#5555)

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. This can be best observed when our filebrowser is in details-mode.

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

Wine commit: daf95aaadf3a59f0ccc129a853327417b5e4f07c

author: Hugh McMaster <hugh.mcmaster@outlook.com>
Mon, 26 Apr 2021 10:59:51 +0000 (20:59 +1000)

---------------

and port back also a few trivial RC improvements, mainly to keep binary size under control.

Binary size:
comctl32.dll master    RosBEWin2.2.2 GCC8.4.0dbg               1.999.872
comctl32.dll 0.4.14rls RosBEWin2.1.6 GCC4.7.2dbg  1.808.896 -> 1.808.896
comctl32.dll 0.4.13rls RosBEWin2.1.6 GCC4.7.2dbg  1.810.944 -> 1.805.312
comctl32.dll 0.4.12rls RosBEWin2.1.6 GCC4.7.2dbg  1.823.232 -> 1.818.112
comctl32.dll 0.4.11rls RosBEWin2.1.6 GCC4.7.2dbg  1.816.064 -> 1.810.944
comctl32.dll 0.4.10rls RosBEWin2.1.6 GCC4.7.2dbg  1.813.504 -> 1.808.384
comctl32.dll 0.4. 9rls RosBEWin2.1.6 GCC4.7.2dbg  1.813.504 -> 1.808.384
comctl32.dll 0.4. 8rls RosBEWin2.1.6 GCC4.7.2dbg  1.639.424 -> 1.634.304
comctl32.dll 0.4. 7rls RosBEWin2.1.6 GCC4.7.2dbg  1.634.304 -> 1.629.184
This commit is contained in:
Joachim Henze 2023-09-12 00:54:14 +02:00
parent b54a6fe33c
commit 63e2b48a71
2 changed files with 6 additions and 5 deletions

View file

@ -53,7 +53,7 @@ STRINGTABLE
IDD_PROPSHEET DIALOG 0, 0, 220, 140 IDD_PROPSHEET DIALOG 0, 0, 220, 140
STYLE DS_SHELLFONT | DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE STYLE DS_SHELLFONT | DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "%s Husûsiyetleri" CAPTION "%s Özellikleri"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "Tamam", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP DEFPUSHBUTTON "Tamam", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
@ -66,7 +66,7 @@ END
IDD_WIZARD DIALOG 0, 0, 290, 159 IDD_WIZARD DIALOG 0, 0, 290, 159
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Yardımcı" CAPTION "Sihirbaz"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
PUSHBUTTON "< &Geri", IDC_BACK_BUTTON,56,138,55,14 PUSHBUTTON "< &Geri", IDC_BACK_BUTTON,56,138,55,14
@ -82,7 +82,7 @@ END
IDD_TBCUSTOMIZE DIALOG 10, 20, 395, 125 IDD_TBCUSTOMIZE DIALOG 10, 20, 395, 125
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Araç Çubuğunu Husûsileştir" CAPTION "Araç Çubuğunu Özelleştir"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "Ka&pat", IDCANCEL,320,6,70,14 DEFPUSHBUTTON "Ka&pat", IDCANCEL,320,6,70,14
@ -90,10 +90,10 @@ BEGIN
PUSHBUTTON "&Yardım", IDC_HELP_BTN,320,40,70,14 PUSHBUTTON "&Yardım", IDC_HELP_BTN,320,40,70,14
PUSHBUTTON "Y&ukarı Taşı", IDC_MOVEUP_BTN,320,74,70,14 PUSHBUTTON "Y&ukarı Taşı", IDC_MOVEUP_BTN,320,74,70,14
PUSHBUTTON "&Aşağı Taşı", IDC_MOVEDN_BTN,320,91,70,14 PUSHBUTTON "&Aşağı Taşı", IDC_MOVEDN_BTN,320,91,70,14
LTEXT "Ku&llanılabilir Düğmeler:", -1,4,5,120,10 LTEXT "Ku&llanılabilir Butonlar:", -1,4,5,120,10
LISTBOX IDC_AVAILBTN_LBOX,5,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP LISTBOX IDC_AVAILBTN_LBOX,5,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
PUSHBUTTON "&Ekle ->", IDOK, 132, 42, 55, 14 PUSHBUTTON "&Ekle ->", IDOK, 132, 42, 55, 14
PUSHBUTTON "<- &Kaldır", IDC_REMOVE_BTN,132,62,55,14 PUSHBUTTON "<- &Kaldır", IDC_REMOVE_BTN,132,62,55,14
LTEXT "A&raç Çubuğu Düğmeleri:", -1,194,5,120,10 LTEXT "A&raç Çubuğu Butonları:", -1,194,5,120,10
LISTBOX IDC_TOOLBARBTN_LBOX, 194,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP LISTBOX IDC_TOOLBARBTN_LBOX, 194,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
END END

View file

@ -4218,6 +4218,7 @@ static LRESULT LISTVIEW_MouseMove(LISTVIEW_INFO *infoPtr, WORD fwKeys, INT x, IN
/* Begin selection and capture mouse */ /* Begin selection and capture mouse */
infoPtr->bMarqueeSelect = TRUE; infoPtr->bMarqueeSelect = TRUE;
infoPtr->marqueeRect = rect;
SetCapture(infoPtr->hwndSelf); SetCapture(infoPtr->hwndSelf);
} }
} }