[PATCH] user32: Reimplement TrackMouseEvent.
Rafał Harabień
rafalh1992 at o2.pl
Mon Nov 20 18:01:11 CST 2017
Tests show that TME_QUERY returns valid data if TME_LEAVE or TME_HOVER
tracking is active for window in current thread and returns empty data
after starting tracking for window from other thread ("track_query(0,
NULL, 0)" in test code). It cannot work this way with global variable
(as used already in HEAD).
I used SendNotifyMessageW because I don't see a way to get
user_thread_info pointer for other threads. Is there any good
alternative to store thread related data?
What other test can I provide?
W dniu 20.11.2017 o 11:52, Alexandre Julliard pisze:
> Rafał Harabień <rafalh1992 at o2.pl> writes:
>
>> Improvements:
>> - Don't use timer for TME_LEAVE and react immediately on mouse motion.
>> It improves user experience for controls depending on this API like toolbar.
>> - Fail when called with invalid flags
>> - Hold tracking info for each win32 thread independently
>> - Merge tracking requests if possible (leave+hover)
>> - Return hover time 0 when hover tracking is disabled
> I still don't see a test justifying the use of local thread data. In
> fact, if you have to do things like this:
>
>> + /* use internal message to get access to user_thread_info for tracked window */
>> + return SendNotifyMessageW(ptme->hwndTrack, WM_WINE_TRACKMOUSEEVENT, ptme->dwFlags, ptme->dwHoverTime);
> it suggests that maybe the thread data is not the right place.
>
More information about the wine-devel
mailing list