comdlg32: In the file dialog change the position of the file browser when the application changes that of the invisible listbox control.

Rein Klazes wijn at online.nl
Sat Aug 8 04:19:42 CDT 2009


fixes bug#13134
---
 dlls/comdlg32/filedlg.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c
index de3dc38..4986122 100644
--- a/dlls/comdlg32/filedlg.c
+++ b/dlls/comdlg32/filedlg.c
@@ -1150,7 +1150,7 @@ INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
     case WM_INITDIALOG:
       {
          FileOpenDlgInfos * fodInfos = (FileOpenDlgInfos *)lParam;
-         RECT rc;
+         RECT rc, rcstc;
          int gripx = GetSystemMetrics( SM_CYHSCROLL);
          int gripy = GetSystemMetrics( SM_CYVSCROLL);
 
@@ -1185,6 +1185,18 @@ INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
              SendCustomDlgNotificationMessage(hwnd,CDN_FOLDERCHANGE);
          }
 
+         /* if the app has changed the position of the invisible listbox,
+          * change that of the listview (browser) as well */
+         GetWindowRect( fodInfos->ShellInfos.hwndView, &rc);
+         GetWindowRect( GetDlgItem( hwnd, IDC_SHELLSTATIC ), &rcstc);
+         if( !EqualRect( &rc, &rcstc))
+         {
+             MapWindowPoints( NULL, hwnd, (LPPOINT) &rcstc, 2);
+             SetWindowPos( fodInfos->ShellInfos.hwndView, NULL,
+                     rcstc.left, rcstc.top, rcstc.right - rcstc.left, rcstc.bottom - rcstc.top,
+                     SWP_NOACTIVATE | SWP_NOZORDER);
+         }
+
          if (fodInfos->ofnInfos->Flags & OFN_ENABLESIZING)
          {
              GetWindowRect( hwnd, &rc);
-- 
1.6.3.3




More information about the wine-patches mailing list