2009/3/18 Vincent Povirk madewokherd+8cd9@gmail.com:
On Wed, Mar 18, 2009 at 11:46 AM, Nicolas Le Cam niko.lecam@gmail.com wrote:
Message notification comes from appbar3, I've checked hwnd handles. When calling last ABM_REMOVE there's no more appbars so Wine shouldn't send any notifications, if it does the broken macro (that will come with try2) will catch that.
The window notified with ABN_POSCHANGED is never the window that caused the notification. When a window is removed, every other window gets a notification so it knows to update its position.
The test is just getting that notification late. This is not broken.
Vincent Povirk
Ok, did more testing ... It seems you're right, adding a do_events() call after each DestroyWindow() one seems to fix the test on Win2k. Do you think this is a better fix ?
On Wed, Mar 18, 2009 at 1:34 PM, Nicolas Le Cam niko.lecam@gmail.com wrote:
Ok, did more testing ... It seems you're right, adding a do_events() call after each DestroyWindow() one seems to fix the test on Win2k. Do you think this is a better fix ?
No, that probably creates a race condition. I've seen the windows implementation post messages after SHAppBarMessage returns, and it may sometimes post the notification between do_events() and the next SHAppBarMessage call.
In general, do_events() cannot reliably catch messages that are posted as a result of a previous SHABM call.
I still think that removing the code resetting GWLP_USERDATA is the best fix.
2009/3/18 Vincent Povirk madewokherd+8cd9@gmail.com:
On Wed, Mar 18, 2009 at 1:34 PM, Nicolas Le Cam niko.lecam@gmail.com wrote:
Ok, did more testing ... It seems you're right, adding a do_events() call after each DestroyWindow() one seems to fix the test on Win2k. Do you think this is a better fix ?
No, that probably creates a race condition. I've seen the windows implementation post messages after SHAppBarMessage returns, and it may sometimes post the notification between do_events() and the next SHAppBarMessage call.
In general, do_events() cannot reliably catch messages that are posted as a result of a previous SHABM call.
I still think that removing the code resetting GWLP_USERDATA is the best fix.
Ok I will follow your advice. Thanks for your patience and support.