dlls/x11drv/winpos.c::SWP_DoOwnedPopups()

Peter Riocreux par+wine_devel at silistix.com
Wed Oct 20 11:49:23 CDT 2004


"Dmitry Timoshkov" <dmitry at baikal.ru> writes:

> "Peter Riocreux" <par+wine_devel at silistix.com> wrote:
>
>> > You have to write a test case and add it to existing ones in
>> > dlls/user/tests/win.c to confirm that the patch is correct.
>> 
>> Is something that creates a tree of windows and then makes a parent
>> invisible and checks the visibility state of the children sufficient?
>
> Yes, that should be sufficient. You have to test WS_VISIBLE style
> of children, IsWindowVisible check is not enough. I think that your
> patch is wrong.

It is indeed, but I am not knowledgable enough about the order things
get done to fix it simply. I wrote a test along the lines I guessed
and the hiding works but the unhiding doesn't, even when I explicitly
add a SWP_SHOWWINDOW flag and try both checking WS_VISIBLE property
and IsWindowVisible. I put some printf's in and it always things the
window is hidden when it calls the function. Is the SWP_DoOwnedPopups
being called before the state of the parent is updated? Should a
ShowOwnedPopups call be made after the window state is updated?

Thinking further, I wonder whether there ought to be anything to do
with visibility in that function - which seems to be mainly concerned
with the stacking of windows - or if the visibility ought to be
managed from ShowWindow/HideWindow.

I am somewhat lost!

Peter
k



More information about the wine-devel mailing list