user32: Test layered window focus

Piotr Caban piotr at codeweavers.com
Wed Nov 11 08:34:58 CST 2015


On 11/11/15 15:24, Alexandre Julliard wrote:
> Piotr Caban <piotr at codeweavers.com> writes:
>
>> +    hwnd = CreateWindowExA( WS_EX_LAYERED, "MainWindowClass", "layered window",
>> +                            WS_POPUP | WS_VISIBLE, 100, 100, 200, 200, 0, 0, 0, NULL );
>> +    ok( hwnd != 0, "failed to create layered window\n" );
>> +
>> +    ok(GetFocus() == hwnd, "GetFocus() = %p, expected %p\n", GetFocus(), hwnd);
>> +    flush_events(TRUE);
>> +    todo_wine ok(GetFocus() == hwnd, "GetFocus() = %p, expected %p\n", GetFocus(), hwnd);
>
> What problem are you trying to demonstrate?  It works fine here:
>
> ../../../tools/runtest -q -P wine -T ../../.. -M user32.dll -p user32_test.exe.so win && touch win.ok
> win.c:6566: Test succeeded inside todo block: GetFocus() = 0x8200f6, expected 0x8200f6
> Makefile:609: recipe for target 'win.ok' failed
>
I didn't think about it well. This behavior is window manager dependent. 
The test fails in similar way here if run in virtual desktop.

On my computer when a layered window is created it gets focus, later 
while flushing events it looses focus because of WM_TAKE_FOCUS event. 
After that when application calls UpdateLayeredWindow function window 
manager generates another event that gives focus back to layered window 
(I'm using KDE).

Because of that table resizing is not working in Office 2013 for me.



More information about the wine-devel mailing list