Magellan Linux

Contents of /trunk/tigervnc/patches/tigervnc-1.0.1-r3924-rh541559.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1201 - (show annotations) (download)
Mon Nov 22 23:25:59 2010 UTC (13 years, 5 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)