"Ann & Jason Edmeades" us@edmeades.me.uk wrote:
Under wine, our defwinproc was not returning MA_ACTIVATE for HTNOWHERE (0x0000), and a simple change confirmed that returning that did indeed fix the problem. That leaves the question as to whether the change is right.
I've attached a patch plus simple modified the tests to ensure that MA_ACTIVATE is correct. Please let me know if there are any problems with this one - I don't like touching the defwinproc!
How about an one line test case which simply does
ret = DefWindowProc(hwnd, WM_MOUSEACTIVATE, 0, HTNOWHERE); ok(ret == MA_ACTIVATE, "expected to return MA_ACTIVATE\n");
That would tell you what Windows returns in that case.
How about an one line test case which simply does ret = DefWindowProc(hwnd, WM_MOUSEACTIVATE, 0, HTNOWHERE); ok(ret == MA_ACTIVATE, "expected to return MA_ACTIVATE\n");
Yes, the patch does that (via the window proc for the test, but it gets forwarded on as its not handled). I didn't think of driving it directly, but the end result is the same.
I was just concerned in case the default windows procedure does something different based off windows styles etc. I cant find any evidence it does, but I'm just paranoid :-)
Jason