On 19 January 2015 at 13:59, Stefan Dösinger stefandoesinger@gmail.com wrote:
Am 2014-12-08 um 12:04 schrieb Henri Verbeet:
{
if (unicode)
DefWindowProcW(window, message, wparam, lparam);
else
DefWindowProcA(window, message, wparam, lparam);
}
- }
if (unicode) return CallWindowProcW(proc, window, message, wparam, lparam);
Is this really how it's supposed to work? In particular, should DefWindowProc really always get the message before the application does, or should we give the application a chance first, and only pass to DefWindowProc if it doesn't handle the message?
That's how I read the test results. I get the messages resulting from the WM_SYSCOMMAND(SC_RESTORE) handling before I see the WM_SYSCOMMAND message itself. This is different from the other WM_SYSCOMMAND operations where the WM_SYSCOMMAND arrives first, and the rest of the messages is triggered by the wndproc calling DefWindowProc.
It's been a while since I looked at this patch set in detail, but IIRC the test didn't distinguish between DefWindowProc or the application getting the message first. I.e., it would still pass if the application got the message before DefWindowProc instead of the other way around, which arguably would be the more logical order. Perhaps I misremember though.