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