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(a)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.