Agent 2.0: escape key problem.

Rein Klazes rklazes at xs4all.nl
Fri Nov 21 13:39:43 CST 2003


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.
-- 
Rein Klazes
rklazes at xs4all.nl



More information about the wine-devel mailing list