Update of /cvsroot/perl-win32-gui/Win32-GUI
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16396

Modified Files:
        CHANGELOG GUI.xs 
Log Message:
Update Dialog() and DoEvents() to allow dialog navigation for MDI child windows

Index: GUI.xs
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI.xs,v
retrieving revision 1.65
retrieving revision 1.66
diff -C2 -d -r1.65 -r1.66
*** GUI.xs      15 Jul 2007 19:01:15 -0000      1.65
--- GUI.xs      16 Jul 2007 19:31:50 -0000      1.66
***************
*** 1050,1053 ****
--- 1050,1054 ----
      HACCEL acc;
      LPPERLWIN32GUI_USERDATA perlud;
+     LPPERLWIN32GUI_USERDATA tperlud;
  CODE:
      stayhere = 1;
***************
*** 1081,1088 ****
                  acc = perlud->hAcc;
              }
  
              if( !( (fIsMDI && TranslateMDISysAccel((HWND)perlud->dwData, 
&msg)) ||
                     (acc && TranslateAccelerator(phwnd, acc, &msg))            
  ||
!                    (fIsDialog && IsDialogMessage(phwnd, &msg)) ) 
                ){
                  TranslateMessage(&msg);
--- 1082,1101 ----
                  acc = perlud->hAcc;
              }
+             // ### If the parent window is a MDIFrame the active MDIChild 
+             // ### can be THE DialogBox
+             if(fIsMDI
+                 && (thwnd = (HWND)SendMessage((HWND)perlud->dwData, 
WM_MDIGETACTIVE, (WPARAM) 0, (LPARAM) NULL))
+                 && (tperlud = (LPPERLWIN32GUI_USERDATA) GetWindowLong(thwnd, 
GWL_USERDATA))
+                 && ValidUserData(tperlud))
+             {
+                 fIsDialog = tperlud->dwPlStyle & PERLWIN32GUI_DIALOGUI;
+             }
+             else {
+                 thwnd = phwnd;
+             }
  
              if( !( (fIsMDI && TranslateMDISysAccel((HWND)perlud->dwData, 
&msg)) ||
                     (acc && TranslateAccelerator(phwnd, acc, &msg))            
  ||
!                    (fIsDialog && IsDialogMessage(thwnd, &msg)) ) 
                ){
                  TranslateMessage(&msg);
***************
*** 1125,1128 ****
--- 1138,1142 ----
      HACCEL acc;
      LPPERLWIN32GUI_USERDATA perlud;
+     LPPERLWIN32GUI_USERDATA tperlud;
  CODE:
      stayhere = 1;
***************
*** 1152,1159 ****
                      acc = perlud->hAcc;
                  }
  
                  if( !( (fIsMDI && TranslateMDISysAccel((HWND)perlud->dwData, 
&msg)) ||
                         (acc && TranslateAccelerator(phwnd, acc, &msg))        
      ||
!                        (fIsDialog && IsDialogMessage(phwnd, &msg)) ) 
                    ){
                      TranslateMessage(&msg);
--- 1166,1185 ----
                      acc = perlud->hAcc;
                  }
+                 // ### If the parent window is a MDIFrame the active MDIChild 
+                 // ### can be THE DialogBox
+                 if(fIsMDI
+                     && (thwnd = (HWND)SendMessage((HWND)perlud->dwData, 
WM_MDIGETACTIVE, (WPARAM) 0, (LPARAM) NULL))
+                     && (tperlud = (LPPERLWIN32GUI_USERDATA) 
GetWindowLong(thwnd, GWL_USERDATA))
+                     && ValidUserData(tperlud))
+                 {
+                     fIsDialog = tperlud->dwPlStyle & PERLWIN32GUI_DIALOGUI;
+                 }
+                 else {
+                     thwnd = phwnd;
+                 }
  
                  if( !( (fIsMDI && TranslateMDISysAccel((HWND)perlud->dwData, 
&msg)) ||
                         (acc && TranslateAccelerator(phwnd, acc, &msg))        
      ||
!                        (fIsDialog && IsDialogMessage(thwnd, &msg)) ) 
                    ){
                      TranslateMessage(&msg);

Index: CHANGELOG
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/CHANGELOG,v
retrieving revision 1.125
retrieving revision 1.126
diff -C2 -d -r1.125 -r1.126
*** CHANGELOG   16 Jul 2007 19:28:28 -0000      1.125
--- CHANGELOG   16 Jul 2007 19:31:50 -0000      1.126
***************
*** 11,14 ****
--- 11,17 ----
      - GUI.pm - remove constants from AcceptFiles() [Joseph Cordero]
      - Treeview.xs - fix GetParent() method to get the parent window, rather
+       than the parent node if called with no arguements. [Salvador Oritz]
+     - GUI.xs - modify Dialog() and DoEvents() to allow for dialog navigation
+       to work within MDI child windows. [Salvador Oritz]
  
  + [Robert May] : 15 July 2007 -  Bug Fixes


Reply via email to