2013/3/26 Nikolay Sivov nsivov@codeweavers.com:
Is there any reliable way to test send mouse messages? Cause it looks like if I send WM_LBUTTONDOWN directly it doesn't trigger tab selection code on windows, but works in wine.
Do you want to figure out the correct sequence of messages or write tests for wine's test suite? Either way, it's a good idea to start with winetricks comctl32. After that WINEDEBUG=+message gives you all information you may need. First thing you may want to check is if there's a modal message loop involved. Run the application with +message and click. If the last line in console is '...WM_LBUTTONDOWN returned', you're looking at a message loop. If it's WM_LBUTTONUP, it's probably standard handling. Keep in mind that some window styles may affect message handling (e.g. treeview handles mouse messages differently when TVS_DISABLEDRAGDROP is specified) If you want to write tests, you may be able to use SendMessage. It's much less work than SendInput or mouse_event, and is more reliable as BlockInput is not implemented. I had some degree of success with SendMessage when testing ListView and Treeview, but my tests never made it into git. Also some message handlers use mouse coordinates from lParam, while others seem to use either GetCursorPos or GetMessagePos, so setting cursor position may be necessary.
Regards, Daniel