-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
Am 2014-12-08 um 12:04 schrieb Henri Verbeet:
- if (device->filter_messages)
- if (device->filter_messages && message != WM_DISPLAYCHANGE)
That seems pretty specific. I'd be curious how other broadcast messages are handled.
I did some testing on this and tried to send some messages to the window from inside the WM_DISPLAYCHANGE message handler. I did not manage to get any message through, not even WM_DISPLAYCHANGE. HWND_BROADCAST doesn't help either. Broadcast messages are sent to other windows (e.g. the device window) as expected.
It is possible that WM_DISPLAYCHANGE and WM_IME_NOTIFY are generated by d3d9 rather than just whitelisted.
The behavior is also different if the device is created by a thread that does not own the window. In this case the owning thread has to pump messages, otherwise CreateDevice gets stuck. A lot more messages can be seen, but not WM_WINDOWPOSCHANGING / WM_WINDOWPOSCHANGED.
I don't plan to spend more time on the filtering behavior until we find an application that has trouble with the current code though.
Stefan