|
|
|
@ -125,94 +125,99 @@ int check_bounds(struct xrdp_bitmap* b, int* x, int* y, int* cx, int* cy)
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/* scan codes
|
|
|
|
|
1 esc
|
|
|
|
|
2 1 or ?
|
|
|
|
|
3 2 or @
|
|
|
|
|
4 3 or #
|
|
|
|
|
5 4 or $
|
|
|
|
|
6 5 or %
|
|
|
|
|
7 6 or ^
|
|
|
|
|
8 7 or &
|
|
|
|
|
9 8 or *
|
|
|
|
|
10 9 or (
|
|
|
|
|
11 10 or )
|
|
|
|
|
12 11 or _
|
|
|
|
|
13 12 or +
|
|
|
|
|
14 backspace
|
|
|
|
|
15 tab
|
|
|
|
|
16 q or Q
|
|
|
|
|
17 w or W
|
|
|
|
|
18 e or E
|
|
|
|
|
19 r or R
|
|
|
|
|
20 t or T
|
|
|
|
|
21 y or Y
|
|
|
|
|
22 u or U
|
|
|
|
|
23 i or I
|
|
|
|
|
24 o or O
|
|
|
|
|
25 p or P
|
|
|
|
|
26 [ or {
|
|
|
|
|
27 ] or }
|
|
|
|
|
28 enter, keypad if ext
|
|
|
|
|
29 left or right ctrl, ext flag is right
|
|
|
|
|
30 a or A
|
|
|
|
|
31 s or S
|
|
|
|
|
32 d or D
|
|
|
|
|
33 f or F
|
|
|
|
|
34 g or G
|
|
|
|
|
35 h or H
|
|
|
|
|
36 j or J
|
|
|
|
|
37 k or K
|
|
|
|
|
38 l or L
|
|
|
|
|
39 ; or :
|
|
|
|
|
40 ' or "
|
|
|
|
|
41 ~
|
|
|
|
|
42 left shift
|
|
|
|
|
43 \
|
|
|
|
|
44 z or Z
|
|
|
|
|
45 x or X
|
|
|
|
|
46 c or C
|
|
|
|
|
47 v or V
|
|
|
|
|
48 b or B
|
|
|
|
|
49 n or N
|
|
|
|
|
50 m or M
|
|
|
|
|
51 , or <
|
|
|
|
|
52 . or >
|
|
|
|
|
53 / can be / on keypad, ext flag is keypad
|
|
|
|
|
54 right shift
|
|
|
|
|
55 * on keypad or print screen if ext
|
|
|
|
|
56 left or right alt, ext flag is right
|
|
|
|
|
57 space
|
|
|
|
|
58 caps lock
|
|
|
|
|
59 F1
|
|
|
|
|
60 F2
|
|
|
|
|
61 F3
|
|
|
|
|
62 F4
|
|
|
|
|
63 F5
|
|
|
|
|
64 F6
|
|
|
|
|
65 F7
|
|
|
|
|
66 F8
|
|
|
|
|
67 F9
|
|
|
|
|
68 F10
|
|
|
|
|
69 num lock
|
|
|
|
|
70 scroll lock
|
|
|
|
|
71 7 or home on keypad, ext flag is not keypad
|
|
|
|
|
72 8 or arrow up on keypad, ext flag is not keypad
|
|
|
|
|
73 9 or page up
|
|
|
|
|
74 -(minus) on keypad
|
|
|
|
|
75 4 or arrow left on keypad, ext flag is not keypad
|
|
|
|
|
76 middle(5 key) of keypad
|
|
|
|
|
77 6 or arrow right, can be on keypad, ext flag in not keypad
|
|
|
|
|
78 + on keypad
|
|
|
|
|
79 1 or end
|
|
|
|
|
80 2 or arrow down, can be on keypad, ext flag in not keypad
|
|
|
|
|
81 3 or page down
|
|
|
|
|
82 0 or insert on keypad, ext flag is not keypad
|
|
|
|
|
83 . or delete on keypad, ext flag is not keypad
|
|
|
|
|
87 F11
|
|
|
|
|
88 F12
|
|
|
|
|
91 left win key ext always on
|
|
|
|
|
92 right win key ext always on
|
|
|
|
|
93 menu key ext always on
|
|
|
|
|
1 0x01 esc
|
|
|
|
|
2 0x02 1 or ?
|
|
|
|
|
3 0x03 2 or @
|
|
|
|
|
4 0x04 3 or #
|
|
|
|
|
5 0x05 4 or $
|
|
|
|
|
6 0x06 5 or %
|
|
|
|
|
7 0x07 6 or ^
|
|
|
|
|
8 0x08 7 or &
|
|
|
|
|
9 0x09 8 or *
|
|
|
|
|
10 0x0a 9 or (
|
|
|
|
|
11 0x0b 0 or )
|
|
|
|
|
12 0x0c - or _
|
|
|
|
|
13 0x0d = or +
|
|
|
|
|
14 0x0e backspace
|
|
|
|
|
15 0x0f tab
|
|
|
|
|
16 0x10 q or Q
|
|
|
|
|
17 0x11 w or W
|
|
|
|
|
18 0x12 e or E
|
|
|
|
|
19 0x13 r or R
|
|
|
|
|
20 0x14 t or T
|
|
|
|
|
21 0x15 y or Y
|
|
|
|
|
22 0x16 u or U
|
|
|
|
|
23 0x17 i or I
|
|
|
|
|
24 0x18 o or O
|
|
|
|
|
25 0x19 p or P
|
|
|
|
|
26 0x1a [ or {
|
|
|
|
|
27 0x1b ] or }
|
|
|
|
|
28 0x1c enter, keypad if ext
|
|
|
|
|
29 0x1d left or right ctrl, ext flag is right
|
|
|
|
|
30 0x1e a or A
|
|
|
|
|
31 0x1f s or S
|
|
|
|
|
32 0x20 d or D
|
|
|
|
|
33 0x21 f or F
|
|
|
|
|
34 0x22 g or G
|
|
|
|
|
35 0x23 h or H
|
|
|
|
|
36 0x24 j or J
|
|
|
|
|
37 0x25 k or K
|
|
|
|
|
38 0x26 l or L
|
|
|
|
|
39 0x27 ; or :
|
|
|
|
|
40 0x28 ' or "
|
|
|
|
|
41 0x29 ` or ~
|
|
|
|
|
42 0x2a left shift
|
|
|
|
|
43 0x2b \
|
|
|
|
|
44 0x2c z or Z
|
|
|
|
|
45 0x2d x or X
|
|
|
|
|
46 0x2e c or C
|
|
|
|
|
47 0x2f v or V
|
|
|
|
|
48 0x30 b or B
|
|
|
|
|
49 0x31 n or N
|
|
|
|
|
50 0x32 m or M
|
|
|
|
|
51 0x33 , or <
|
|
|
|
|
52 0x34 . or >
|
|
|
|
|
53 0x35 / can be / on keypad, ext flag is keypad
|
|
|
|
|
54 0x36 right shift
|
|
|
|
|
55 0x37 * on keypad or print screen if ext
|
|
|
|
|
56 0x38 left or right alt, ext flag is right
|
|
|
|
|
57 0x39 space
|
|
|
|
|
58 0x3a caps lock
|
|
|
|
|
59 0x3b F1
|
|
|
|
|
60 0x3c F2
|
|
|
|
|
61 0x3d F3
|
|
|
|
|
62 0x3e F4
|
|
|
|
|
63 0x3f F5
|
|
|
|
|
64 0x40 F6
|
|
|
|
|
65 0x41 F7
|
|
|
|
|
66 0x42 F8
|
|
|
|
|
67 0x43 F9
|
|
|
|
|
68 0x44 F10
|
|
|
|
|
69 0x45 num lock
|
|
|
|
|
70 0x46 scroll lock
|
|
|
|
|
71 0x47 7 or home on keypad, ext flag is not keypad
|
|
|
|
|
72 0x48 8 or arrow up on keypad, ext flag is not keypad
|
|
|
|
|
73 0x49 9 or page up
|
|
|
|
|
74 0x4a -(minus) on keypad
|
|
|
|
|
75 0x4b 4 or arrow left on keypad, ext flag is not keypad
|
|
|
|
|
76 0x4c middle(5 key) of keypad
|
|
|
|
|
77 0x4d 6 or arrow right, can be on keypad, ext flag in not keypad
|
|
|
|
|
78 0x4e + on keypad
|
|
|
|
|
79 0x4f 1 or end
|
|
|
|
|
80 0x50 2 or arrow down, can be on keypad, ext flag in not keypad
|
|
|
|
|
81 0x51 3 or page down
|
|
|
|
|
82 0x52 0 or insert on keypad, ext flag is not keypad
|
|
|
|
|
83 0x53 . or delete on keypad, ext flag is not keypad
|
|
|
|
|
84 0x54
|
|
|
|
|
85 0x55
|
|
|
|
|
86 0x56
|
|
|
|
|
87 0x57 F11
|
|
|
|
|
88 0x58 F12
|
|
|
|
|
89 0x59
|
|
|
|
|
90 0x5a
|
|
|
|
|
91 0x5b left win key ext always on
|
|
|
|
|
92 0x5c right win key ext always on
|
|
|
|
|
93 0x5d menu key ext always on
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* non shift chars */
|
|
|
|
|