comctl32: Ensure listview control has focus when marquee dragging
Nikolay Sivov
bunglehead at gmail.com
Fri Oct 16 11:19:17 CDT 2009
Owen Rudge wrote:
> Hi Nikolay,
>
>> This doesn't look right. Try with ControlSpy and you'll see
>> WM_SETFOCUS sent just after LButton pressed on
>> client area (not on item, that's important). LButtonUp event used to
>> set focus item was under mouse pointer and it's
>> released without any mouse movements (or maybe drag threshold doesn't
>> count).
>
> I've just tested this with ControlSpy on wine with my patch,
> NM_SETFOCUS is sent after LButton is released, when clicking on the
> client area.
Exactly, and this isn't a case on native. It is sent on LButtonDown is
pressed not-on-item. Also you may want to look at message list for
ListView window (on wine it doesn't work and I mean native system here)
- after SetFocus() ListView get WM_SETFOCUS, it allows to determine when
we should to call SetFocus(), I'm not sure maybe NM_SETFOCUS is an
always forwarded WM_SETFOCUS...
> It is also sent when clicking on an item and releasing the pointer
> without any mouse movements, as you say. Possibly I'm misunderstanding
> what you're saying here, but I'm not sure I see where the problem is?
> Behaviour is, as far as I can tell, identical with my patch and
> without it, with the exception of course of the NM_SETFOCUS if the
> window does not already have focus.
This isn't a problem actually, it's difference in notification sequence.
On native focusing never depends on Mousemove and you're adding this
dependency.
>
> Cheers,
>
More information about the wine-devel
mailing list