open-src/xserver/xvnc/upstream-modkeystick.patch
author Stuart Kreitman <Stuart.Kreitman@Sun.COM>
Thu, 17 Dec 2009 15:35:07 -0800
changeset 865 2830e8bf613b
child 981 34c4991cc8b6
permissions -rw-r--r--
6911361 vnc has problems with sticky modifier keys
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
865
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     1
--- /dev/null	2009-12-17 01:29:23.000000000 -0800
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     2
+++ upstream-modkeystick.patch	2009-12-17 01:28:12.531376950 -0800
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     3
@@ -0,0 +1,34 @@
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     4
+open-src/xserver/xvnc/build_32/tigervnc-1.0.0
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     5
+--- unix/xserver/hw/vnc/Input.cc.orig	2009-12-16 17:23:13.298295400 -0800
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     6
++++ unix/xserver/hw/vnc/Input.cc	2009-12-16 17:14:56.292383650 -0800
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     7
+@@ -456,6 +456,14 @@
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     8
+ 	unsigned int i, n;
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
     9
+ 	int j, k, action;
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    10
+ 
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    11
++	/* 
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    12
++	 * Since we are checking the current state to determine if we need
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    13
++	 * to fake modifiers, we must make sure that everything put on the
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    14
++	 * input queue is processed before we start. Otherwise, shift may be
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    15
++	 * stuck down.
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    16
++	 */ 
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    17
++	mieqProcessInputEvents();
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    18
++	
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    19
+ 	if (keysym == XK_Caps_Lock) {
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    20
+ 		vlog.debug("Ignoring caps lock");
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    21
+ 		goto cleanup;
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    22
+@@ -617,6 +625,15 @@
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    23
+ 		xfree(keymap);
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    24
+ 	}
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    25
+ #endif
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    26
++
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    27
++	/*
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    28
++	 * When faking a modifier we are putting a keycode (which can
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    29
++	 * currently activate the desired modifier) on the input
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    30
++	 * queue. A future modmap change can change the mapping so
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    31
++	 * that this keycode means something else entirely. Guard
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    32
++	 * against this by processing the queue now.
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    33
++	 */
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    34
++	mieqProcessInputEvents();
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    35
+ }
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    36
+ 
2830e8bf613b 6911361 vnc has problems with sticky modifier keys
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents:
diff changeset
    37
+ static KeySym KeyCodetoKeySym(KeySymsPtr keymap, int keycode, int col)