Contents of /trunk/tigervnc/patches/tigervnc-1.0.1-r3924-rh541559.patch
Parent Directory | Revision Log
Revision 1201 -
(show 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 | 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) |