This RealizePalette call (UserRealizePalette, windows\painting.c) results
in
256 colors being mapped in, and SendMessageA( HWND_BROADCAST, WM_PALETTECHANGED, (WPARAM)hWnd, 0L); to occur. This broadcast hangs attempting to send the message to the first thread as it is in a hung
state
waiting for another process to end. Under windows, the RealizePalette returns 0, and spy on Windows does not show this message being sent to
the
'hung' thread.
The message should probably be sent with SendMessageTimeout with the SMTO_ABORTIFHUNG flag. The only problem is that this flag is not implemented yet...
Prossibly, and let me guess.. "if the receiving process appears to be in a "hung" state" is difficult to determine? (Otherwise, I guess it isnt that difficult to implement as the rest of it is all there).
The only reason I hesitate to agree with you is the difference in the RealizePalette returns, one (wine) indicating 256 colors had to be changed, the other (win2k) indicating none had to be. Maybe this is a side effect of our x11drv palette implementation, but it still is slightly worrying?
Whats the best way to progress this? I can continue plodding by commenting out the whole line, so shall I just raise a bug for it?
Jason