comdlg32: fix a problem with resizing a customized file dialog.

Rein Klazes wijn at online.nl
Thu Jul 9 02:36:04 CDT 2009


Origin: multiple ascii import dialog does not properly move some
custom buttons.
---
 dlls/comdlg32/filedlg.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c
index 6093952..f0bdfa4 100644
--- a/dlls/comdlg32/filedlg.c
+++ b/dlls/comdlg32/filedlg.c
@@ -1118,9 +1118,6 @@ static LRESULT FILEDLG95_OnWMSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
     if(fodInfos->DlgInfos.hwndCustomDlg &&
         (fodInfos->ofnInfos->Flags & (OFN_ENABLETEMPLATE | OFN_ENABLETEMPLATEHANDLE)))
     {
-        GetClientRect(hwnd, &rc);
-        DeferWindowPos( hdwp,fodInfos->DlgInfos.hwndCustomDlg, NULL,
-            0, 0, rc.right, rc.bottom, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
         for( ctrl = GetWindow( fodInfos->DlgInfos.hwndCustomDlg, GW_CHILD);
                 ctrl ; ctrl = GetWindow( ctrl, GW_HWNDNEXT))
         {
@@ -1143,6 +1140,11 @@ static LRESULT FILEDLG95_OnWMSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
                         SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER);
             }
         }
+        /* size the custom dialog at the end: some applications do some
+         * control re-arranging at this point */
+        GetClientRect(hwnd, &rc);
+        DeferWindowPos( hdwp,fodInfos->DlgInfos.hwndCustomDlg, NULL,
+            0, 0, rc.right, rc.bottom, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
     }
     EndDeferWindowPos( hdwp);
     /* should not be needed */
-- 
1.6.3.3




More information about the wine-patches mailing list