Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
9079109a
Commit
9079109a
authored
Feb 13, 2010
by
Jörg Höhle
Committed by
Alexandre Julliard
Mar 04, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11: Log keycode decimal <-> hex for keysym & MS vkey and scancode.
parent
83c272a2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
33 deletions
+38
-33
input.c
dlls/user32/input.c
+3
-3
message.c
dlls/user32/message.c
+1
-1
keyboard.c
dlls/winex11.drv/keyboard.c
+34
-29
No files found.
dlls/user32/input.c
View file @
9079109a
...
...
@@ -134,7 +134,7 @@ UINT WINAPI SendInput( UINT count, LPINPUT inputs, int size )
break
;
case
INPUT_KEYBOARD
:
TRACE
(
"keyboard: vk %
x
, scan %x, flags %x, time %u, info %lx
\n
"
,
TRACE
(
"keyboard: vk %
X
, scan %x, flags %x, time %u, info %lx
\n
"
,
inputs
[
i
].
u
.
ki
.
wVk
,
inputs
[
i
].
u
.
ki
.
wScan
,
inputs
[
i
].
u
.
ki
.
dwFlags
,
inputs
[
i
].
u
.
ki
.
time
,
inputs
[
i
].
u
.
ki
.
dwExtraInfo
);
break
;
...
...
@@ -657,7 +657,7 @@ UINT WINAPI MapVirtualKeyExA(UINT code, UINT maptype, HKL hkl)
*/
UINT
WINAPI
MapVirtualKeyExW
(
UINT
code
,
UINT
maptype
,
HKL
hkl
)
{
TRACE_
(
keyboard
)(
"(%
d
, %d, %p)
\n
"
,
code
,
maptype
,
hkl
);
TRACE_
(
keyboard
)(
"(%
X
, %d, %p)
\n
"
,
code
,
maptype
,
hkl
);
return
USER_Driver
->
pMapVirtualKeyEx
(
code
,
maptype
,
hkl
);
}
...
...
@@ -869,7 +869,7 @@ UINT WINAPI GetKeyboardLayoutList(INT nBuff, HKL *layouts)
BOOL
WINAPI
RegisterHotKey
(
HWND
hwnd
,
INT
id
,
UINT
modifiers
,
UINT
vk
)
{
static
int
once
;
if
(
!
once
++
)
FIXME_
(
keyboard
)(
"(%p,%d,0x%08x,%
d
): stub
\n
"
,
hwnd
,
id
,
modifiers
,
vk
);
if
(
!
once
++
)
FIXME_
(
keyboard
)(
"(%p,%d,0x%08x,%
X
): stub
\n
"
,
hwnd
,
id
,
modifiers
,
vk
);
return
TRUE
;
}
...
...
dlls/user32/message.c
View file @
9079109a
...
...
@@ -2998,7 +2998,7 @@ BOOL WINAPI TranslateMessage( const MSG *msg )
if
(
msg
->
message
<
WM_KEYFIRST
||
msg
->
message
>
WM_KEYLAST
)
return
FALSE
;
if
(
msg
->
message
!=
WM_KEYDOWN
&&
msg
->
message
!=
WM_SYSKEYDOWN
)
return
TRUE
;
TRACE_
(
key
)(
"Translating key %s (%04l
x
), scancode %04x
\n
"
,
TRACE_
(
key
)(
"Translating key %s (%04l
X
), scancode %04x
\n
"
,
SPY_GetVKeyName
(
msg
->
wParam
),
msg
->
wParam
,
HIWORD
(
msg
->
lParam
));
switch
(
msg
->
wParam
)
...
...
dlls/winex11.drv/keyboard.c
View file @
9079109a
...
...
@@ -51,6 +51,12 @@
#include "wine/unicode.h"
#include "wine/debug.h"
/* log format (add 0-padding as appropriate):
keycode %u as in output from xev
keysym %lx as in X11/keysymdef.h
vkey %X as in winuser.h
scancode %x
*/
WINE_DEFAULT_DEBUG_CHANNEL
(
keyboard
);
WINE_DECLARE_DEBUG_CHANNEL
(
key
);
...
...
@@ -1145,7 +1151,7 @@ static WORD EVENT_event_to_vkey( XIC xic, XKeyEvent *e)
if
((
e
->
state
&
ControlMask
)
&&
(
keysym
==
XK_Break
))
return
VK_CANCEL
;
TRACE_
(
key
)(
"e->keycode = %
x
\n
"
,
e
->
keycode
);
TRACE_
(
key
)(
"e->keycode = %
u
\n
"
,
e
->
keycode
);
return
keyc2vkey
[
e
->
keycode
];
}
...
...
@@ -1231,7 +1237,7 @@ void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD event_flags, DWORD
{
vk_hook
=
wVk
=
VK_PACKET
;
lParam
=
MAKELPARAM
(
1
/* repeat count */
,
wScan
);
TRACE_
(
key
)(
"
message=0x%04x wParam=0x%04x
lParam=0x%08lx
\n
"
,
TRACE_
(
key
)(
"
message=0x%04x wParam=0x%04X
lParam=0x%08lx
\n
"
,
message
,
wVk
,
lParam
);
}
...
...
@@ -1263,7 +1269,7 @@ void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD event_flags, DWORD
lParam
=
MAKELPARAM
(
1
/* repeat count */
,
flags
);
TRACE_
(
key
)(
" message=0x%04x wParam=0x%04
x
, lParam=0x%08lx, InputKeyState=0x%x
\n
"
,
TRACE_
(
key
)(
" message=0x%04x wParam=0x%04
X
, lParam=0x%08lx, InputKeyState=0x%x
\n
"
,
message
,
wVk
,
lParam
,
key_state_table
[
wVk
]);
}
...
...
@@ -1299,7 +1305,7 @@ static inline void KEYBOARD_UpdateOneState ( WORD vkey, WORD scan, int state, DW
if
(
!
state
)
flags
|=
KEYEVENTF_KEYUP
;
TRACE
(
"Adjusting state for vkey %#.2
x
. State before %#.2x
\n
"
,
TRACE
(
"Adjusting state for vkey %#.2
X
. State before %#.2x
\n
"
,
vkey
,
key_state_table
[
vkey
&
0xff
]);
/* Fake key being pressed inside wine */
...
...
@@ -1377,7 +1383,7 @@ void X11DRV_KeyEvent( HWND hwnd, XEvent *xev )
DWORD
event_time
=
EVENT_x11_time_to_win32_time
(
event
->
time
);
Status
status
=
0
;
TRACE_
(
key
)(
"type %d, window %lx, state 0x%04x, keycode
0x%04x
\n
"
,
TRACE_
(
key
)(
"type %d, window %lx, state 0x%04x, keycode
%u
\n
"
,
event
->
type
,
event
->
window
,
event
->
state
,
event
->
keycode
);
wine_tsx11_lock
();
...
...
@@ -1402,7 +1408,7 @@ void X11DRV_KeyEvent( HWND hwnd, XEvent *xev )
ascii_chars
=
XLookupString
(
event
,
buf
,
sizeof
(
buf
),
&
keysym
,
NULL
);
wine_tsx11_unlock
();
TRACE_
(
key
)(
"nbyte = %d, status
0x%x
\n
"
,
ascii_chars
,
status
);
TRACE_
(
key
)(
"nbyte = %d, status
%d
\n
"
,
ascii_chars
,
status
);
if
(
status
==
XLookupChars
)
{
...
...
@@ -1432,7 +1438,7 @@ void X11DRV_KeyEvent( HWND hwnd, XEvent *xev )
wine_tsx11_unlock
();
if
(
!
ksname
)
ksname
=
"No Name"
;
TRACE_
(
key
)(
"%s : keysym=%l
X
(%s), # of chars=%d / %s
\n
"
,
TRACE_
(
key
)(
"%s : keysym=%l
x
(%s), # of chars=%d / %s
\n
"
,
(
event
->
type
==
KeyPress
)
?
"KeyPress"
:
"KeyRelease"
,
keysym
,
ksname
,
ascii_chars
,
debugstr_an
(
Str
,
ascii_chars
));
}
...
...
@@ -1445,7 +1451,7 @@ void X11DRV_KeyEvent( HWND hwnd, XEvent *xev )
if
(
!
vkey
&&
ascii_chars
)
vkey
=
VK_NONAME
;
wine_tsx11_unlock
();
TRACE_
(
key
)(
"keycode
0x%x converted to vkey 0x%x
\n
"
,
TRACE_
(
key
)(
"keycode
%u converted to vkey 0x%X
\n
"
,
event
->
keycode
,
vkey
);
if
(
!
vkey
)
return
;
...
...
@@ -1525,7 +1531,7 @@ X11DRV_KEYBOARD_DetectLayout( Display *display )
if
(
!
use_xkb
||
!
XkbTranslateKeySym
(
display
,
&
keysym
,
0
,
&
ckey
[
keyc
][
i
],
1
,
NULL
))
#endif
{
TRACE
(
"XKB could not translate keysym %
ld
\n
"
,
keysym
);
TRACE
(
"XKB could not translate keysym %
04lx
\n
"
,
keysym
);
/* FIXME: query what keysym is used as Mode_switch, fill XKeyEvent
* with appropriate ShiftMask and Mode_switch, use XLookupString
* to get character in the local encoding.
...
...
@@ -1577,7 +1583,7 @@ X11DRV_KEYBOARD_DetectLayout( Display *display )
char
str
[
5
];
for
(
i
=
0
;
i
<
4
;
i
++
)
str
[
i
]
=
ckey
[
keyc
][
i
]
?
ckey
[
keyc
][
i
]
:
' '
;
str
[
4
]
=
0
;
TRACE_
(
key
)(
"mismatch for key
sym 0x%04lX, keycode %d, got %s
\n
"
,
keysym
,
keyc
,
str
);
TRACE_
(
key
)(
"mismatch for key
code %u, got %s
\n
"
,
keyc
,
str
);
mismatch
++
;
score
-=
syms
;
}
...
...
@@ -1822,11 +1828,11 @@ void X11DRV_InitKeyboard( Display *display )
}
}
}
TRACE
(
"keycode %
04x => vkey %04x
\n
"
,
e2
.
keycode
,
vkey
);
TRACE
(
"keycode %
u => vkey %04X
\n
"
,
e2
.
keycode
,
vkey
);
keyc2vkey
[
e2
.
keycode
]
=
vkey
;
keyc2scan
[
e2
.
keycode
]
=
scan
;
if
((
vkey
&
0xff
)
&&
vkey_used
[(
vkey
&
0xff
)])
WARN
(
"vkey %04
x
is being used by more than one keycode
\n
"
,
vkey
);
WARN
(
"vkey %04
X
is being used by more than one keycode
\n
"
,
vkey
);
vkey_used
[(
vkey
&
0xff
)]
=
1
;
}
/* for */
...
...
@@ -1874,7 +1880,7 @@ void X11DRV_InitKeyboard( Display *display )
if
(
vkey
)
{
TRACE
(
"keycode %
04x => vkey %04x
\n
"
,
e2
.
keycode
,
vkey
);
TRACE
(
"keycode %
u => vkey %04X
\n
"
,
e2
.
keycode
,
vkey
);
keyc2vkey
[
e2
.
keycode
]
=
vkey
;
}
}
/* for */
...
...
@@ -1912,7 +1918,7 @@ void X11DRV_InitKeyboard( Display *display )
if
(
TRACE_ON
(
keyboard
))
{
TRACE
(
"spare virtual key %
X assigned to keycode %X
:
\n
"
,
TRACE
(
"spare virtual key %
04X assigned to keycode %u
:
\n
"
,
vkey
,
e2
.
keycode
);
TRACE
(
"("
);
for
(
i
=
0
;
i
<
keysyms_per_keycode
;
i
+=
1
)
...
...
@@ -1923,12 +1929,12 @@ void X11DRV_InitKeyboard( Display *display )
ksname
=
XKeysymToString
(
keysym
);
if
(
!
ksname
)
ksname
=
"NoSymbol"
;
TRACE
(
"%l
X
(%s) "
,
keysym
,
ksname
);
TRACE
(
"%l
x
(%s) "
,
keysym
,
ksname
);
}
TRACE
(
")
\n
"
);
}
TRACE
(
"keycode %
04x => vkey %04x
\n
"
,
e2
.
keycode
,
vkey
);
TRACE
(
"keycode %
u => vkey %04X
\n
"
,
e2
.
keycode
,
vkey
);
keyc2vkey
[
e2
.
keycode
]
=
vkey
;
vkey_used
[
vkey
]
=
1
;
}
/* for */
...
...
@@ -1944,7 +1950,7 @@ void X11DRV_InitKeyboard( Display *display )
/* should make sure the scancode is unassigned here, but >=0x60 currently always is */
TRACE_
(
key
)(
"assigning scancode %02x to unidentified keycode %
02x
(%s)
\n
"
,
scan
,
keyc
,
ksname
);
TRACE_
(
key
)(
"assigning scancode %02x to unidentified keycode %
u
(%s)
\n
"
,
scan
,
keyc
,
ksname
);
keyc2scan
[
keyc
]
=
scan
++
;
}
...
...
@@ -1976,7 +1982,7 @@ SHORT CDECL X11DRV_GetAsyncKeyState(INT key)
retval
=
((
key_state_table
[
key
]
&
0x40
)
?
0x0001
:
0
)
|
((
key_state_table
[
key
]
&
0x80
)
?
0x8000
:
0
);
key_state_table
[
key
]
&=
~
0x40
;
TRACE_
(
key
)(
"(%
x
) -> %x
\n
"
,
key
,
retval
);
TRACE_
(
key
)(
"(%
X
) -> %x
\n
"
,
key
,
retval
);
return
retval
;
}
...
...
@@ -2127,8 +2133,7 @@ SHORT CDECL X11DRV_VkKeyScanEx(WCHAR wChar, HKL hkl)
}
wine_tsx11_unlock
();
TRACE
(
"'%c'(%#lx, %lu): got keycode %#.2x (%d)
\n
"
,
cChar
,
keysym
,
keysym
,
keycode
,
keycode
);
TRACE
(
"'%c'(%lx): got keycode %u
\n
"
,
cChar
,
keysym
,
keycode
);
/* keycode -> (keyc2vkey) vkey */
ret
=
keyc2vkey
[
keycode
];
...
...
@@ -2298,7 +2303,7 @@ UINT CDECL X11DRV_MapVirtualKeyEx(UINT wCode, UINT wMapType, HKL hkl)
wine_tsx11_unlock
();
return
0
;
/* whatever */
}
TRACE
(
"Found keycode %
d (0x%2X)
\n
"
,
e
.
keycode
,
e
.
keycode
);
TRACE
(
"Found keycode %
u
\n
"
,
e
.
keycode
);
len
=
XLookupString
(
&
e
,
s
,
sizeof
(
s
),
&
keysym
,
NULL
);
wine_tsx11_unlock
();
...
...
@@ -2357,7 +2362,7 @@ INT CDECL X11DRV_GetKeyNameText(LONG lParam, LPWSTR lpBuffer, INT nSize)
}
ansi
=
X11DRV_MapVirtualKeyEx
(
vkey
,
MAPVK_VK_TO_CHAR
,
X11DRV_GetKeyboardLayout
(
0
));
TRACE
(
"scan 0x%04x, vkey 0x%04
x
, ANSI 0x%04x
\n
"
,
scanCode
,
vkey
,
ansi
);
TRACE
(
"scan 0x%04x, vkey 0x%04
X
, ANSI 0x%04x
\n
"
,
scanCode
,
vkey
,
ansi
);
/* first get the name of the "regular" keys which is the Upper case
value of the keycap imprint. */
...
...
@@ -2400,7 +2405,7 @@ INT CDECL X11DRV_GetKeyNameText(LONG lParam, LPWSTR lpBuffer, INT nSize)
keys
=
XKeycodeToKeysym
(
display
,
keyc
,
0
);
name
=
XKeysymToString
(
keys
);
wine_tsx11_unlock
();
TRACE
(
"found scan=%04x keyc=%
04x
keysym=%04x string=%s
\n
"
,
TRACE
(
"found scan=%04x keyc=%
u
keysym=%04x string=%s
\n
"
,
scanCode
,
keyc
,
(
int
)
keys
,
name
);
if
(
lpBuffer
&&
nSize
&&
name
)
return
MultiByteToWideChar
(
CP_UNIXCP
,
0
,
name
,
-
1
,
lpBuffer
,
nSize
);
...
...
@@ -2408,7 +2413,7 @@ INT CDECL X11DRV_GetKeyNameText(LONG lParam, LPWSTR lpBuffer, INT nSize)
/* Finally issue WARN for unknown keys */
WARN
(
"(%08x,%p,%d): unsupported key, vkey=%04
x
, ansi=%04x
\n
"
,
lParam
,
lpBuffer
,
nSize
,
vkey
,
ansi
);
WARN
(
"(%08x,%p,%d): unsupported key, vkey=%04
X
, ansi=%04x
\n
"
,
lParam
,
lpBuffer
,
nSize
,
vkey
,
ansi
);
if
(
lpBuffer
&&
nSize
)
*
lpBuffer
=
0
;
return
0
;
...
...
@@ -2609,9 +2614,9 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState
wine_tsx11_unlock
();
return
0
;
}
else
TRACE
(
"Found keycode %
d (0x%2X)
\n
"
,
e
.
keycode
,
e
.
keycode
);
else
TRACE
(
"Found keycode %
u
\n
"
,
e
.
keycode
);
TRACE_
(
key
)(
"type %d, window %lx, state 0x%04x, keycode
0x%04x
\n
"
,
TRACE_
(
key
)(
"type %d, window %lx, state 0x%04x, keycode
%u
\n
"
,
e
.
type
,
e
.
window
,
e
.
state
,
e
.
keycode
);
/* Clients should pass only KeyPress events to XmbLookupString,
...
...
@@ -2647,7 +2652,7 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState
ksname
=
XKeysymToString
(
keysym
);
wine_tsx11_unlock
();
if
(
!
ksname
)
ksname
=
"No Name"
;
TRACE_
(
key
)(
"%s : keysym=%l
X
(%s), # of chars=%d / %s
\n
"
,
TRACE_
(
key
)(
"%s : keysym=%l
x
(%s), # of chars=%d / %s
\n
"
,
(
e
.
type
==
KeyPress
)
?
"KeyPress"
:
"KeyRelease"
,
keysym
,
ksname
,
ret
,
debugstr_an
(
lpChar
,
ret
));
}
...
...
@@ -2706,9 +2711,9 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState
ksname
=
"No Name"
;
if
((
keysym
>>
8
)
!=
0xff
)
{
WARN
(
"no char for keysym %04l
X
(%s) :
\n
"
,
WARN
(
"no char for keysym %04l
x
(%s) :
\n
"
,
keysym
,
ksname
);
WARN
(
"virtKey=%X, scanCode=%X, keycode=%
X
, state=%X
\n
"
,
WARN
(
"virtKey=%X, scanCode=%X, keycode=%
u
, state=%X
\n
"
,
virtKey
,
scanCode
,
e
.
keycode
,
e
.
state
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment