[?? Probable Spam] user32.dll Add redraw and WM_WINDOWPOS* notifications to SetActiveWindow [1]

Vitaliy Margolen wine-devel at kievinfo.com
Wed May 11 23:15:26 CDT 2005

Wednesday, May 11, 2005, 8:08:09 PM, you wrote:
> "Vitaliy Margolen" <wine-patch at kievinfo.com> wrote:
>> According to native messages sent to app we should redraw window
>> inside SetActiveWindow.
> If you have a test app then it should be converted into a Wine message
> test, there is no other way to prove that your patch is correct.
I have sent a test in a separate patch. It does verify this statement. The test
I used is an altered version of tests\win.c dumping all messages. Then I
compared native and wine outputs.

As far as WM_WINDOWPOSCHANGING/ED go, it does depend on Z-order changes that
Alexandre indicated are up to wm and not critical anyway. My patch will send
more of these messages than native. But I would think they are important enough
to be sent, especially WM_WINDOWPOSCHANGED.

>> @@ -152,7 +232,7 @@ static BOOL set_active_window( HWND hwnd
>>      if (IsWindow(hwnd))
>>      {
>> -        SendMessageW( hwnd, WM_NCACTIVATE, (hwnd ==
>> GetForegroundWindow()), (LPARAM)previous );
>> +        SendMessageW( hwnd, WM_NCACTIVATE, TRUE, (LPARAM)previous );

> Active and foreground windows in win32 are not necessary the same window.
As it was it was always sending FALSE. Not sure what the deal is here. I would
think that active window might need to change it's icon. Considering that here
we do activate window and it should became foreground, this change is correct.

Also SetForegroundWindow actually calls SetActiveWindow any way. So active
window _is_ foreground window.
Because earlier in that function we test for previous != hwnd this code being
reached only when we change active window.


More information about the wine-devel mailing list