[Bug 1719] MDI child window minimize problem in Delphi VCL applications

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jun 19 20:40:57 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=1719





--- Comment #18 from Dylan Smith <dylan.ah.smith at gmail.com>  2010-06-19 20:40:56 ---
Created an attachment (id=28993)
 --> (http://bugs.winehq.org/attachment.cgi?id=28993)
Modified winefile for debugging the bug

The delphi application seem to be responding the WM_SIZE message in the child
window. They seem to get the normal window rect with GetWindowPlacement, then
for some reason use SetWindowPos on the just minimized window to resize it to
the previous size.

The attached patch modifies winefile for debugging.  Specifically it reproduces
the bug in winefile by using SetWindowPos on WM_SIZE when the window is
minimized, and prints the messages received during the SetWindowPos call (and
dumping some interesting structures in the messages).

I found that WM_WINDOWPOSCHANGING was being sent with the proposed new size,
but this size was fixed before WM_NCCALCSIZE was sent to the window. I also
tried returning 0 without calling the DefWindowProc on WM_WINDOWPOSCHANGING to
make sure that DefWindowProc didn't make the change. This implies that
SetWindowPos fixes the value after sending WM_WINDOWPOSCHANGING in user32.

(Side note: I noticed that WM_GETMINMAXINFO sent from DefWindowProc on Windows
had the ptReserved equal to the fixed size of an icon title, but wine seems to
set this to the window rect's current top left position, but this isn't
relevant for this bug.)

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list