1Input Processing
2================
3
4Input Server messages
5---------------------
6
7The Input Server collects information about keyboard and mouse events
8and forwards them to the app_server via messages. They are sent to port
9specifically for such messages, and the port is monitored by a thread
10whose task is to monitor, process, and dispatch them to the appropriate
11recipients. The Input Server is a regular BApplication, and unlike other
12applications, it requests a port to which it can send input messages.
13
14Mouse
15-----
16
17Mouse events consist of button changes, mouse movements, and the mouse
18wheel. The message will consist of the time of the event and attachments
19appropriate for each message listed below:
20
21B_MOUSE_DOWN
22............
23
24- when
25- buttons' status
26- location of the cursor
27- modifiers
28- clicks
29
30B_MOUSE_UP
31..........
32
33- time
34- buttons' status
35- location of the cursor
36- modifiers
37
38B_MOUSE_MOVED
39.............
40
41- time
42- location of the cursor
43- buttons' status
44
45B_MOUSE_WHEEL_CHANGED
46.....................
47
48- time
49- location of the cursor
50- transit - in or out
51- x delta
52- y delta
53
54Keyboard
55--------
56
57Keyboard events consist of notification when a key is pressed or
58released. Any keypress or release will evoke a message, regardless of
59whether or not the key is mapped. The message will consist of the
60appropriate code and attachments listed below:
61
62B_KEY_DOWN
63..........
64
65- time
66- key code
67- repeat count
68- modifiers
69- states
70- UTF-8 code
71- string generated
72- modifier-independent ASCII code
73
74B_KEY_UP
75........
76
77- time
78- key code
79- modifiers
80- states
81- UTF-8 code
82- string generated
83- modifier-independent ASCII code
84
85B_UNMAPPED_KEY_DOWN
86...................
87
88- time
89- key code
90- modifiers
91- states
92
93B_UNMAPPED_KEY_UP
94.................
95
96- time
97- key code
98- modifiers
99- states
100
101B_MODIFIERS_CHANGED
102...................
103
104sent when a modifier key changes
105
106- time
107- modifier states
108- previous modifier states
109- states
110
111Nearly all keypresses received by the app_server are passed onto the
112appropriate application. Control-Tab, when held, is sent to the Deskbar
113for app switching. Command+F?? is intercepted and a workspace is
114switched. Left Control + Alt + Delete is not even intercepted by the
115app_server. The Input Server receives it and shows the Team Monitor
116window.
117
118
119