-----Original Message----- From: Medland, Bill [mailto:Bill.Medland@accpac.com] Sent: Thursday, August 15, 2002 8:59 AM To: Wine devel (E-mail) Subject: Some observations on window parentage etc.
Here are some observations with regard to Window parentage/ownership etc.
snip
More to follow.
Bill
OK guys; who can justify the claim in the server (set_window_owner) that the owner and the window must have the same parent? I think it is untrue, but I don't know what it should be.
I believe we need to extend the WIN_SetOwner to return the previous owner. Should we take that out of the structure on the user side or should we modify the server reply to return it? I guess modifying the server reply is the safer option and should have no performance penalty.
So here is what I am looking at doing. (I'd prefer comments here rather than after I submit the patch)
1. Modify the set_window_owner reply to return both the new full handle and the previous full handle. (p.s. what is this full handle anyway? Why is it different from the one passed in the request?)
2. Modify the set_window_owner handler to fill in the reply and also remove the parent test (or replace it with anything you guys think makes sense)
3. Modify WIN_SetOwner to return the value
4. Leave GetParent as it is
5. Modify GetWindowLong (GWL_HWNDPARENT to return the parent if a WS_CHILD and the owner otherwise (even if not a WS_POPUP)
6. Modify GetAncestor (GA_ROOTWINDOW) to return the same as recursing on GetParent.
7. Write a test set.
Comments?
Bill