Annotation of /trunk/tigervnc/patches/tigervnc-1.0.1-r3924-rh541559.patch
Parent Directory | Revision Log
Revision 1201 -
(hide annotations)
(download)
Mon Nov 22 23:25:59 2010 UTC (13 years, 10 months ago) by niro
File size: 1162 byte(s)
Mon Nov 22 23:25:59 2010 UTC (13 years, 10 months ago) by niro
File size: 1162 byte(s)
-patches for 1.0.1 against xorg-server-1.7
1 | niro | 1201 | Index: unix/xserver/hw/vnc/Input.cc |
2 | =================================================================== | ||
3 | --- unix/xserver/hw/vnc/Input.cc (revision 3923) | ||
4 | +++ unix/xserver/hw/vnc/Input.cc (revision 3924) | ||
5 | @@ -373,6 +373,14 @@ | ||
6 | unsigned int i, n; | ||
7 | int j, k, action; | ||
8 | |||
9 | + /* | ||
10 | + * Since we are checking the current state to determine if we need | ||
11 | + * to fake modifiers, we must make sure that everything put on the | ||
12 | + * input queue is processed before we start. Otherwise, shift may be | ||
13 | + * stuck down. | ||
14 | + */ | ||
15 | + mieqProcessInputEvents(); | ||
16 | + | ||
17 | if (keysym == XK_Caps_Lock) { | ||
18 | vlog.debug("Ignoring caps lock"); | ||
19 | return; | ||
20 | @@ -506,6 +514,15 @@ | ||
21 | action = down ? KeyPress : KeyRelease; | ||
22 | n = GetKeyboardEvents(eventq, dev, action, kc); | ||
23 | enqueueEvents(dev, n); | ||
24 | + | ||
25 | + /* | ||
26 | + * When faking a modifier we are putting a keycode (which can | ||
27 | + * currently activate the desired modifier) on the input | ||
28 | + * queue. A future modmap change can change the mapping so | ||
29 | + * that this keycode means something else entirely. Guard | ||
30 | + * against this by processing the queue now. | ||
31 | + */ | ||
32 | + mieqProcessInputEvents(); | ||
33 | } | ||
34 | |||
35 | static KeySym KeyCodetoKeySym(KeySymsPtr keymap, int keycode, int col) |