Re: [PATCH] mdi: fix drawing the MDI client area when creating children.
Reece Dunn <msclrhd(a)googlemail.com> writes:
diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c index 631d477..0850282 100644 --- a/dlls/user32/mdi.c +++ b/dlls/user32/mdi.c @@ -1132,6 +1132,7 @@ LRESULT MDIClientWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM hwnd, 0, csA->hOwner, (LPVOID)csA->lParam); } + InvalidateRect(hwnd, NULL, TRUE); return (LRESULT)child;
The window should have been exposed and repainted when the children got resized. If this doesn't happen it's a bug, but invalidating by hand is only hiding the problem. -- Alexandre Julliard julliard(a)winehq.org
On 3 February 2010 15:17, Alexandre Julliard <julliard(a)winehq.org> wrote:
Reece Dunn <msclrhd(a)googlemail.com> writes:
diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c index 631d477..0850282 100644 --- a/dlls/user32/mdi.c +++ b/dlls/user32/mdi.c @@ -1132,6 +1132,7 @@ LRESULT MDIClientWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM hwnd, 0, csA->hOwner, (LPVOID)csA->lParam); } + InvalidateRect(hwnd, NULL, TRUE); return (LRESULT)child;
The window should have been exposed and repainted when the children got resized. If this doesn't happen it's a bug, but invalidating by hand is only hiding the problem.
The MDI Client window is not getting painted when the maximised child window is restored. That is the core problem identified by that bug. There are some message trail tests in dlls/user32/tests/msg.c, but not for the above scenario. I will extend the tests to investigate what is going on in this specific case. - Reece
participants (2)
-
Alexandre Julliard -
Reece Dunn