Hello,
This change prevents IBM Translation Manager from working correctly. It has a dialog named "Export Folder" which used to contain three buttons and a tabbed notebook with various options. After this update, the pages of the tabbed notebook are no longer displayed (and created).
Hope I can provide some more details like a debug log if someone will tell me which channels should be traced.
AJ> ChangeSet ID: 10222 AJ> CVSROOT: /opt/cvs-commit AJ> Module name: wine AJ> Changes by: julliard@wine.codeweavers.com 2003/11/26 16:15:41
AJ> Modified files: AJ> windows : win.c AJ> server : window.c trace.c protocol.def AJ> include/wine : server_protocol.h
AJ> Log message: AJ> Added support for inter-process GetWindowLong on the window extra AJ> bytes.
AJ> Patch: http://cvs.winehq.com/patch.py?id=10222
AJ> Old revision New revision Changes Path AJ> 1.226 1.227 +132 -111 wine/windows/win.c AJ> 1.25 1.26 +36 -4 wine/server/window.c AJ> 1.185 1.186 +7 -3 wine/server/trace.c AJ> 1.87 1.88 +6 -0 wine/server/protocol.def AJ> 1.88 1.89 +7 -1 AJ> wine/include/wine/server_protocol.h
Phil Krylov phil@newstar.rinet.ru writes:
Hope I can provide some more details like a debug log if someone will tell me which channels should be traced.
A +relay,+server would be a good start. Run it both with and without the patch and check where the Get/SetWindowLong return values differ.
Hello Alexandre,
Saturday, November 29, 2003, 3:00:23 AM, you wrote:
AJ> Phil Krylov phil@newstar.rinet.ru writes:
Hope I can provide some more details like a debug log if someone will tell me which channels should be traced.
AJ> A +relay,+server would be a good start. Run it both with and without AJ> the patch and check where the Get/SetWindowLong return values differ.
I found out that with +relay the bug doesn't show up at all. However, +server,+win,+dialog gives those results, which may be not detailed enough. (this is a diff, where lines starting with "-" are from the "good log", and lines starting with "+" are from the "bad log"):
@@ -1099,80 +1111,39 @@ trace:win:GetWindowRect hwnd 0x2004e (0,16)-(401,549) trace:win:WIN_SetWindowLong 0x2004e 0 0 3 trace:win:WIN_SetWindowLong 0x2004e 8 418d70ac 2 +0009: set_window_info( handle=0x2004e, flags=00000040, style=00000000, ex_style=00000000, id=00000000, instance=(nil), user_ +0009: set_window_info() = 0 { old_style=04c820c0, old_ex_style=40000101, old_id=00000000, old_instance=0x41a30000, old_user_ trace:win:WIN_SetWindowLong 0x2004e 8 418d70ac 2
This is the place where the child (WS_EX_CONTROLPARENT dialog) doesn't get created:
-0009: get_window_children( parent=0x2004e, atom=0000, tid=0000 ) -0009: get_window_children() = 0 { count=4, children={0x1004f,0x10050,0x10051,0x10052} } -0009: start_hook_chain( id=4 ) -0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" } -0009: start_hook_chain( id=12 ) -0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" } -0009: start_hook_chain( id=4 ) -0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" } -0009: start_hook_chain( id=12 ) -0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" } -trace:dialog:DIALOG_ParseTemplate32 DIALOG 10, 30, 225, 235, 0 -trace:dialog:DIALOG_ParseTemplate32 STYLE 0x40000040 -trace:dialog:DIALOG_ParseTemplate32 EXSTYLE 0x00010000 -trace:dialog:DIALOG_ParseTemplate32 CAPTION L"" -trace:dialog:DIALOG_ParseTemplate32 FONT 8, L"MS Sans Serif", 0, FALSE -trace:dialog:DIALOG_GetCharSize dlg base units: 6 x 14 -trace:dialog:DIALOG_CreateIndirect units = 6,14 -trace:win:WIN_CreateWindowEx "" "#32770" ex=00010000 style=40000040 15,53 338x411 parent=0x2004e menu=(nil) inst=0x41a30000 -trace:win:dump_window_styles style: WS_CHILD 00000040 -trace:win:dump_window_styles exstyle: WS_EX_CONTROLPARENT -trace:win:WIN_CreateWindowEx winproc type is 2 (WIN_PROC_32A) -0009: create_window( parent=0x2004e, owner=(nil), atom=8002, extra=0 ) -0009: create_window() = 0 { handle=0x10054 } -0009: set_window_info( handle=0x10054, flags=0000000b, style=40000040, ex_style=00010000, id=00000000, instance=0x41a30000, -0009: set_window_info() = 0 { old_style=00000000, old_ex_style=00000000, old_id=00000000, old_instance=(nil), old_user_data= -trace:win:WIN_SetWindowLong 0x10054 -12 0 3 -0009: set_window_info( handle=0x10054, flags=00000004, style=00000000, ex_style=00000000, id=00000000, instance=(nil), user_ -0009: set_window_info() = 0 { old_style=40000040, old_ex_style=00010000, old_id=00000000, old_instance=0x41a30000, old_user_ -0009: set_window_rectangles( handle=0x10054, window={15,53;353,464}, client={15,53;353,464} ) -0009: set_window_rectangles() = 0 -trace:win:WIN_SetRectangles win 0x10054 window (15,53)-(353,464) client (15,53)-(353,464) -0009: set_window_property( window=0x10054, atom=c009, string=0, handle=0x2a00279 ) -0009: set_window_property() = 0 -0009: set_window_property( window=0x10054, atom=c00a, string=0, handle=0x2a0027a ) -0009: set_window_property() = 0 -0009: start_hook_chain( id=5 ) -0009: start_hook_chain() = 0 { handle=0x20034, pid=0000, tid=0000, proc=0x48b751, unicode=0, module=L"" } -0009: get_next_hook( handle=0x20034 ) -0009: get_next_hook() = 0 { next=(nil), id=0, pid=0000, tid=0000, proc=(nil), prev_unicode=0, next_unicode=0, module=L"" } -0009: finish_hook_chain( id=5 )
Hello,
Hope I can provide some more details like a debug log if someone will tell me which channels should be traced.
AJ>> A +relay,+server would be a good start. Run it both with and without AJ>> the patch and check where the Get/SetWindowLong return values differ.
PK> I found out that with +relay the bug doesn't show up at all. However, PK> +server,+win,+dialog gives those results, which may be not detailed PK> enough. PK> (this is a diff, where lines PK> starting with "-" are from the "good log", and lines starting with "+" PK> are from the "bad log"):
The issue has been fixed with some recent CVS changes. Thanks!