Module: wine Branch: master Commit: ff951dc8434a0cbdb3991fa743acef7b8bd5f5f9 URL: https://gitlab.winehq.org/wine/wine/-/commit/ff951dc8434a0cbdb3991fa743acef7...
Author: Zhao Yi zhaoyi@uniontech.com Date: Wed Jul 12 09:56:17 2023 +0800
comctl32/syslink: Check item type before increasing link ID in SYSLINK_LinkAtPt().
Signed-off-by: Zhaoyi zhaoyi@uniontech.com
---
dlls/comctl32/syslink.c | 14 ++++++++------ dlls/comctl32/tests/syslink.c | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/dlls/comctl32/syslink.c b/dlls/comctl32/syslink.c index 8130bf19641..6af516ea1e6 100644 --- a/dlls/comctl32/syslink.c +++ b/dlls/comctl32/syslink.c @@ -1320,16 +1320,18 @@ static PDOC_ITEM SYSLINK_LinkAtPt (const SYSLINK_INFO *infoPtr, const POINT *pt,
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { - if((Current->Type == slLink) && SYSLINK_PtInDocItem(Current, *pt) && - (!MustBeEnabled || (Current->u.Link.state & LIS_ENABLED))) + if(Current->Type == slLink) { - if(LinkId != NULL) + if(SYSLINK_PtInDocItem(Current, *pt) && (!MustBeEnabled || (Current->u.Link.state & LIS_ENABLED))) { - *LinkId = id; + if(LinkId != NULL) + { + *LinkId = id; + } + return Current; } - return Current; + id++; } - id++; }
return NULL; diff --git a/dlls/comctl32/tests/syslink.c b/dlls/comctl32/tests/syslink.c index c0bdfdaf0b9..f6c31d92981 100644 --- a/dlls/comctl32/tests/syslink.c +++ b/dlls/comctl32/tests/syslink.c @@ -264,13 +264,13 @@ static void test_link_id(void) g_link_id = 0; SendMessageA(hwnd, WM_LBUTTONDOWN, 1, MAKELPARAM(50, 10)); SendMessageA(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(50, 10)); - todo_wine ok(g_link_id == 0, "Got unexpected link id %d.\n", g_link_id); + ok(g_link_id == 0, "Got unexpected link id %d.\n", g_link_id);
/* test link2 at (25, 25) */ g_link_id = 0; SendMessageA(hwnd, WM_LBUTTONDOWN, 1, MAKELPARAM(25, 25)); SendMessageA(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(25, 25)); - todo_wine ok(g_link_id == 1, "Got unexpected link id %d.\n", g_link_id); + ok(g_link_id == 1, "Got unexpected link id %d.\n", g_link_id);
DestroyWindow(hwnd); }