Hi,
Next problem with Agent 2.0 beta.
The problem is when composing a message (email/usenet) and pressing the escape key. Expected is a dialog to confirm whether you want to save the message, not to save it or to cancel. Instead the dialog flashes and disappears again and nothing happens.
Here is cut from the debug (relay,message,msg,key,hook) trace, leaving out most uninteresting lines.
| trace:key:X11DRV_KeyEvent KeyPress : keysym=FF1B (Escape), # of chars=1 / 0x1b / '' | trace:key:EVENT_event_to_vkey e->keycode = 9 | trace:key:X11DRV_KeyEvent keycode 0x9 converted to vkey 0x1b | trace:key:X11DRV_KeyEvent bScan = 0x01. | 000b:Call user32.SendInput(00000001,406cf020,0000001c) ret=40d9cf6a | trace:key:queue_kbd_event wParam=001b, lParam=00010001, InputKeyState=81 | 000b:Ret user32.SendInput() retval=00000001 ret=40d9cf6a
key press gets queued.
| 000b:Call user32.GetMessageA(008f4478,00000000,00000000,00000000) ret=005e1c89 | trace:msg:MSG_peek_message got type 7 msg 100 (WM_KEYDOWN) hwnd 0x10064 wp 1b lp 10001 | trace:hook:HOOK_CallHooks calling hook 0x5fa990 WH_KEYBOARD code 0 wp 1b lp 10001 module L"" | 000b:Call hook proc 0x5fa990 (id=WH_KEYBOARD,code=0,wp=0000001b,lp=00010001)
Getmessage picks up the keystroke and calls a hook.
|000b:Call user32.MessageBoxA(00010026,41cefa3c "Save changes to message "No Subject"?",41cefa8c "Agent",00000023) ret=0066e78c
The hook calls up the confirmation dialog.
| trace:key:X11DRV_KeyEvent KeyRelease : keysym=0 (No Name), # of chars=0 / 0x00 / '' | trace:key:EVENT_event_to_vkey e->keycode = 9 | trace:key:X11DRV_KeyEvent keycode 0x9 converted to vkey 0x1b | trace:key:X11DRV_KeyEvent bScan = 0x01. | 000b:Call user32.SendInput(00000001,406ce7bc,0000001c) ret=40d9cf6a | trace:key:queue_kbd_event wParam=001b, lParam=c0010001, InputKeyState=1 | 000b:Ret user32.SendInput() retval=00000001 ret=40d9cf6a
The keyup message is queued.
| trace:msg:MSG_peek_message got type 7 msg 101 (WM_KEYUP) hwnd 0x1006f wp 1b lp c0010001 | trace:key:TranslateMessage (WM_KEYUP, 001B, C0010001) | trace:message:SPY_EnterMessage (0x1006f) L"&Ja" message [0101] WM_KEYUP dispatched wp=0000001b lp=c0010001 | 000b:Call window proc 0x40711b20 (hwnd=0x1006f,msg=WM_KEYUP,wp=0000001b,lp=c0010001) | 000b:Ret window proc 0x40711b20 (hwnd=0x1006f,msg=WM_KEYUP,wp=0000001b,lp=c0010001) retval=00000000 | trace:message:SPY_ExitMessage (0x1006f) L"&Ja" message [0101] WM_KEYUP returned 00000000
and is picked up and processed by the message box without much happening
| trace:msg:MSG_peek_message got type 7 msg 100 (WM_KEYDOWN) hwnd 0x1006f wp 1b lp 10001
This is the riddle: the next message found is a escape-key down message.
| 000b:Ret x11drv.DestroyWindow() retval=00000001 ret=4076df8b
Of course it closes the message box.
| 000b:Ret user32.MessageBoxA() retval=00000002 ret=0066e78c
Message box finished
| 000b:Ret hook proc 0x5fa990 (id=WH_KEYBOARD,code=0,wp=0000001b,lp=00010001) retval=00000001
hook returns
| trace:msg:MSG_peek_message dropping msg 100 | trace:msg:MSG_peek_message got type 6 msg 0 (WM_NULL) hwnd 0x10026 wp 0 lp 0 | 000b:Ret user32.GetMessageA() retval=00000001 ret=005e1c89
and the Getmessage is finished.
Suggestions?
An unedited version of the log above is on http://www.xs4all.nl/~rklazes/temp/agkey.log.bz2
Rein.