user32 - set_active_window uses SendMessage instead of PostMessage for WM_ACTIVATEAPP messages.

Vitaliy Margolen wine-devel at kievinfo.com
Thu Aug 2 21:34:06 CDT 2007


Peter Dons Tychsen wrote:
> Hello Wine.
> 
> On original Windows, the messages WM_ACTIVATEAPP are sent using
> PostMessage() and not SendMessage() like in the current Wine
> implementation.
> 
> I have thoroughly verified that this is the case on Windows-XP (that it
> uses PostMessage()). 
> 
> This error can lead to fatal focusing problems, as some programs call
> more focus related functions when they receive this message. This leads
> to recursive calls into set_active_calls. It does not crash, but leads
> to unexpected results such as lost focus for mouse and keyboard.
> 
> This fixes the focus for the game "Wild Metal" if you switch focus from
> the game to the desktop, and then back again.
> 
> http://www.rockstargames.com/classics/
> 
> Cheers,
> 
> /Pedro
> 
> 

This patch makes 45 msg.c tests in user32 fail for me. Could you double 
check your findings? Also when you say "thoroughly verified" have you used 
Wine tests or your own program?


Vitaliy



More information about the wine-devel mailing list