From: Esme Povirk esme@codeweavers.com
--- dlls/user32/listbox.c | 7 ++++++- dlls/user32/tests/msg.c | 12 ++++++------ 2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/user32/listbox.c b/dlls/user32/listbox.c index 831327f2349..e25a1632d93 100644 --- a/dlls/user32/listbox.c +++ b/dlls/user32/listbox.c @@ -2948,7 +2948,12 @@ LRESULT ListBoxWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam if (IS_MULTISELECT(descr)) return LB_ERR; LISTBOX_SetCaretIndex( descr, wParam, TRUE ); ret = LISTBOX_SetSelection( descr, wParam, TRUE, FALSE ); - if (ret != LB_ERR) ret = descr->selected_item; + if (ret != LB_ERR) + { + ret = descr->selected_item; + NtUserNotifyWinEvent( EVENT_OBJECT_FOCUS, descr->self, OBJID_CLIENT, ret + 1 ); + NtUserNotifyWinEvent( EVENT_OBJECT_SELECTION, descr->self, OBJID_CLIENT, ret + 1 ); + } return ret;
case LB_GETSELCOUNT: diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 4d0d643ef9f..b12ffca337b 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -16805,8 +16805,8 @@ static const struct message wm_lb_setcursel_0[] = { LB_SETCURSEL, sent|wparam|lparam, 0, 0 }, { WM_CTLCOLORLISTBOX, sent|parent }, { WM_DRAWITEM, sent|wparam|lparam|parent, ID_LISTBOX, 0x000120f2 }, - { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam|msg_todo, OBJID_CLIENT, 1 }, - { EVENT_OBJECT_SELECTION, winevent_hook|wparam|lparam|msg_todo, OBJID_CLIENT, 1 }, + { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 1 }, + { EVENT_OBJECT_SELECTION, winevent_hook|wparam|lparam, OBJID_CLIENT, 1 }, { 0 } }; static const struct message wm_lb_setcursel_1[] = @@ -16816,8 +16816,8 @@ static const struct message wm_lb_setcursel_1[] = { WM_DRAWITEM, sent|wparam|lparam|parent, ID_LISTBOX, 0x000020f2 }, { WM_CTLCOLORLISTBOX, sent|parent }, { WM_DRAWITEM, sent|wparam|lparam|parent, ID_LISTBOX, 0x000121f2 }, - { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam|msg_todo, OBJID_CLIENT, 2 }, - { EVENT_OBJECT_SELECTION, winevent_hook|wparam|lparam|msg_todo, OBJID_CLIENT, 2 }, + { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 2 }, + { EVENT_OBJECT_SELECTION, winevent_hook|wparam|lparam, OBJID_CLIENT, 2 }, { 0 } }; static const struct message wm_lb_setcursel_2[] = @@ -16827,8 +16827,8 @@ static const struct message wm_lb_setcursel_2[] = { WM_DRAWITEM, sent|wparam|lparam|parent, ID_LISTBOX, 0x000021f2 }, { WM_CTLCOLORLISTBOX, sent|parent }, { WM_DRAWITEM, sent|wparam|lparam|parent, ID_LISTBOX, 0x000122f2 }, - { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam|msg_todo, OBJID_CLIENT, 3 }, - { EVENT_OBJECT_SELECTION, winevent_hook|wparam|lparam|msg_todo, OBJID_CLIENT, 3 }, + { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 3 }, + { EVENT_OBJECT_SELECTION, winevent_hook|wparam|lparam, OBJID_CLIENT, 3 }, { 0 } }; static const struct message wm_lb_click_0[] =