Partial fix for TVN_SELCHANGED

Drew "DanteAliegri" Ogle dantealiegri at umbc.edu
Wed Feb 12 08:05:07 CST 2003


This fixes the putty and the winamp dialog problems,
except for the inital load. I'll have to look at that. interestingly, 
when WM_SELCHANGEDW is set to TVN_SELCHANGEDA
in the treeview call, those work perfectly, so I suppose this patch may 
not be complete.

What the problem is is that the W gets sent to DefDlgProc32, because it 
is a W call, but the programs treeview hanlder isn't always W.
So, you have to check that here and then adjust the code.


-Dante
-------------- next part --------------
Index: windows/defdlg.c
===================================================================
RCS file: /home/wine/wine/windows/defdlg.c,v
retrieving revision 1.29
diff -u -r1.29 defdlg.c
--- windows/defdlg.c	14 Jan 2003 19:29:15 -0000	1.29
+++ windows/defdlg.c	12 Feb 2003 14:00:56 -0000
@@ -395,12 +395,17 @@
 LRESULT WINAPI DefDlgProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
 {
     BOOL result = FALSE;
+		BOOL forWide = FALSE;
     WNDPROC dlgproc;
+		if( msg == WM_NOTIFY && lParam && ((LPNMHDR)lParam)->code & 0x30 )
+			forWide = TRUE;
 
     SetWindowLongW( hwnd, DWL_MSGRESULT, 0 );
 
     if ((dlgproc = DEFDLG_GetDlgProc( hwnd )))
     {
+				if( forWide && (WINPROC_GetProcType( dlgproc) == WIN_RPOC_32A ))
+					((LPNMHDR)lParam)->code += 0x30;
         /* Call dialog procedure */
         result = CallWindowProcW( dlgproc, hwnd, msg, wParam, lParam );
         /* 16 bit dlg procs only return BOOL16 */


More information about the wine-devel mailing list