user32: If the listbox loses focus while holding capture, release it by essentially simulating a button up event.

Huw Davies huw at codeweavers.com
Thu Feb 20 06:01:45 CST 2014


On Thu, Feb 20, 2014 at 03:46:26PM +0400, Nikolay Sivov wrote:
> On 2/20/2014 15:35, Huw Davies wrote:
> >---
> >  dlls/user32/listbox.c       |  1 +
> >  dlls/user32/tests/listbox.c | 30 ++++++++++++++++++++++++++++++
> >  2 files changed, 31 insertions(+)
> >
> >      case WM_KILLFOCUS:
> >+        LISTBOX_HandleLButtonUp( descr ); /* Release capture if we have it */
> >          descr->in_focus = FALSE;
> >          descr->wheel_remain = 0;
> This isn't totally correct. It's fine for when you press and hold
> left button and then change focus with Tab for example,
> LBN_SELCHANGE does indeed happen in this case. But when you just Tab
> away from a list with no mouse commands you shouldn't send
> LBN_SELCHANGE.

Right, LBN_SELCHANGE should only get sent if we release the capture.
Isn't that what this does?

Huw.



More information about the wine-devel mailing list