With today's CVS (last patch was "wine/ dlls/gdi/wing.c dlls/kernel/comm.c dlls/ ..."), the following problems exist in the ControSpy (REBAR) test program:
Problem #1. Using native version of "commctrl,comctl32", get the following fault:
/home/albertel/t1/wine/wine -managed -winver win95 -dll commctrl,comctl32=n G:\Rdhat\test-pgm\controls\rebar.exe Could not stat /mnt/winflp (No such file or directory), ignoring drive A: fixme:pthread_kill_other_threads_np Could not stat /mnt/winflp (No such file or directory), ignoring drive A: WineDbg starting... on pid 8064ef0 ...... Unhandled exception: page fault on read access to 0x00000067 in 32-bit code (0x40894f24). In 32-bit mode. Symbol h_errno is invalid Symbol hack_digit is invalid 0x40894f24 (clip_children+0x24 [winpos.c:70] in libx11drv.so): testb $0x10,0x67(%esi) 70 if (ptr->dwStyle & WS_VISIBLE) break; Wine-dbg>bt Backtrace: =>0 0x40894f24 (clip_children+0x24(win=0x403732dc, last=0x40373370, hrgn=0xa22, whole_window=0x0) [winpos.c:70] in libx11drv.so) (ebp=40586564) 1 0x4089511e (get_visible_region+0x14e(win=0x40373370, top=0x403732dc, flags=0x1001a, mode=0x1) [winpos.c:144] in libx11drv.so) (ebp=405865a4) 2 0x408952ec (X11DRV_GetDC+0x1a8(hwnd=0x1908, hdc=0x88, hrgn=0x0, flags=0x1001a) [winpos.c:229] in libx11drv.so) (ebp=405865e8) 3 0x406874bc (GetDCEx+0x29c(hwnd=0x1908, hrgnClip=0x0, flags=0x10000) [dce.c:531] in libuser32.so) (ebp=40586620) 4 0x4068755c (GetDC+0x2c(hwnd=0x1908) [dce.c:561] in libuser32.so) (ebp=40586638) 5 0xbfb9a055 (COMCTL32.DLL.InitCommonControlsEx+0x4137 in C:\WINDOWS\SYSTEM\COMCTL32.DLL) (ebp=40586694) 6 0xbfb9a037 (COMCTL32.DLL.InitCommonControlsEx+0x4119 in C:\WINDOWS\SYSTEM\COMCTL32.DLL) (ebp=405867fc) 7 0xbfb94e38 (COMCTL32.DLL.ImageList_GetIconSize+0x558 in C:\WINDOWS\SYSTEM\COMCTL32.DLL) (ebp=40586854) 8 0x406b24a7 (WINPROC_wrapper+0x17 in libuser32.so) (ebp=40586878) 9 0x406b2520 (WINPROC_CallWndProc+0x70(proc=0xbfb94a89, hwnd=0x1908, msg=0x81, wParam=0x0, lParam=0x40586b10) [winproc.c:171] in libuser32.so) (ebp=405868a0)
The following patch bypasses the tests:
--- wine/dlls/x11drv/winpos.c Wed Jun 13 20:03:34 2001 +++ mywine/dlls/x11drv/winpos.c Wed Jun 13 22:59:18 2001 @@ -65,6 +65,9 @@ HRGN rectRgn; int x, y;
+ /* if no children then nothing to do */ + if (!win->child) return; + /* first check if we have anything to do */ for (ptr = win->child; ptr != last; ptr = ptr->next) if (ptr->dwStyle & WS_VISIBLE) break;
Problem # 2. With above patch and still using native comctl32 get the following:
/home/albertel/t1/mywine/wine -managed -winver win95 -dll commctrl,comctl32=n G:\Rdhat\test-pgm\controls\rebar.exe Could not stat /mnt/winflp (No such file or directory), ignoring drive A: err:region:CombineRgn Invalid rgn=0000 err:region:CombineRgn Invalid rgn=0000 err:region:CombineRgn Invalid rgn=0000 err:region:CombineRgn Invalid rgn=0000 err:region:CombineRgn Invalid rgn=0000 err:region:CombineRgn Invalid rgn=0000 err:x11drv:X11DRV_SetDeviceClipping Rgn is 0. Please report this. ##normal exit from wine##
Problem # 3. Still with native comctl32. With more than 1 band in a row, when you drag a band from left to right, the band being uncovered is not fully repainted (suspect InvalidateRect too small). This is especially visible if the band being dragged is a different color. It is also sensitive to the speed of the drag. Attached is a control file to create different color bands in a row.
If you need any more information, let me know what. I will be doing more work tomorrow night.
Thanks,
Guy