Just an FYI - Applied Bills 2nd patch (which included the fix for the first part), and retested my VB app.
The behaviour I am seeing is better, but not 100%:
1. A modal window now is fully visible 2. A modal window, when visible accepts key/mouse input 3. Once the modal window is visible, a click on the owning parent brings the parent in front of the modal one but it doesnt have focus 4. Once the owning parent is in front of the modal window, I cant retrieve the modal window by clicking on it but it still has focus and text goes into modal window 5. The only way to get a full view of the modal window is to use the task bar and click on it
I think if the parent gets a message to come to the front, it should bring the child in front of it?
However this fix is better than the hack I was using which left both fully useable!
Thanks Jason
-----Original Message----- From: Dmitry Timoshkov [mailto:dmitry@baikal.ru] Sent: 14 August 2002 02:33 To: us@the-edmeades.demon.co.uk Cc: wine-devel@winehq.com Subject: Re: Re:can windows be reparented?
us@the-edmeades.demon.co.uk wrote:
To be honest I never investigated further once I commented out the
SetParent call,
as I was continuing to fix oleaut32 and left the gui side to someone else!
I know it was being called in the failing case, and removing it allowed
the
windows to pop up, BUT they were still wrong as you could access the
'parent'
whereas you should not be able to
Could you please test patch posted by Bill Medland to wine-patches today? It's not entirely correct though. My tests show that SetWindowLong(GWL_HWNDPARENT) call changes simultaneously both parent and owner for top level windows and returns old value (not sure old owner or parent it is).
But top level windows created by Visual Vasic are special: they have no parent, but only owner according to Spy++. In my tests I can't reproduce it yet.
A bit of investigation of Wine source revealed that some places use GetAncestor(hwnd, GA_PARENT), while others use GetParent(hwnd). Since their behaviour is different in respect of top level and child windows, some major clean up in that area in Wine is needed.
-- Dmitry.