[tigervnc] libvnc.so: don't use unexported key_is_down function.
Tim Waugh
twaugh at fedoraproject.org
Wed Jul 24 16:31:03 UTC 2013
commit 544fe4cd651eba2e45c6a04c5373c1b4f9037b40
Author: Tim Waugh <twaugh at redhat.com>
Date: Wed Jul 24 17:15:41 2013 +0100
libvnc.so: don't use unexported key_is_down function.
tigervnc-key_is_down.patch | 50 ++++++++++++++++++++++++++++++++++++++++++++
tigervnc.spec | 5 ++++
2 files changed, 55 insertions(+), 0 deletions(-)
---
diff --git a/tigervnc-key_is_down.patch b/tigervnc-key_is_down.patch
new file mode 100644
index 0000000..98cdf49
--- /dev/null
+++ b/tigervnc-key_is_down.patch
@@ -0,0 +1,50 @@
+diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.key_is_down tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc
+--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.key_is_down 2013-07-24 12:54:41.461930866 +0100
++++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc 2013-07-24 13:04:39.743663652 +0100
+@@ -321,7 +321,11 @@ std::list<KeyCode> InputDevice::releaseS
+ XkbAction *act;
+ unsigned char mask;
+
+- if (!key_is_down(master, key, KEY_PROCESSED))
++ int bit;
++ BYTE *kptr;
++ kptr = &master->key->down[key >> 3];
++ bit = 1 << (key & 7);
++ if (*kptr & bit)
+ continue;
+
+ act = XkbKeyActionPtr(xkb, key, state);
+@@ -402,7 +406,11 @@ std::list<KeyCode> InputDevice::releaseL
+ XkbAction *act;
+ unsigned char key_mask;
+
+- if (!key_is_down(master, key, KEY_PROCESSED))
++ int bit;
++ BYTE *kptr;
++ kptr = &master->key->down[key >> 3];
++ bit = 1 << (key & 7);
++ if (*kptr & bit)
+ continue;
+
+ act = XkbKeyActionPtr(xkb, key, state);
+@@ -638,6 +646,8 @@ void InputDevice::vncXkbProcessDeviceEve
+
+ if (event->device_event.sourceid == self->keyboardDev->id) {
+ XkbControlsPtr ctrls;
++ int bit;
++ BYTE *kptr;
+
+ /*
+ * We need to bypass AccessX since it is timing sensitive and
+@@ -651,8 +661,10 @@ void InputDevice::vncXkbProcessDeviceEve
+ * This flag needs to be set for key repeats to be properly
+ * respected.
+ */
++ kptr = &dev->key->down[event->device_event.detail.key >> 3];
++ bit = 1 << (event->device_event.detail.key & 7);
+ if ((event->device_event.type == ET_KeyPress) &&
+- key_is_down(dev, event->device_event.detail.key, KEY_PROCESSED))
++ (*kptr & bit))
+ event->device_event.key_repeat = TRUE;
+ }
+
diff --git a/tigervnc.spec b/tigervnc.spec
index 90d588c..a0342c6 100644
--- a/tigervnc.spec
+++ b/tigervnc.spec
@@ -46,6 +46,7 @@ Patch6: tigervnc-setcursor-crash.patch
Patch7: tigervnc-manpages.patch
Patch8: tigervnc-getmaster.patch
Patch9: tigervnc-shebang.patch
+Patch10: tigervnc-key_is_down.patch
%description
Virtual Network Computing (VNC) is a remote display system which
@@ -168,6 +169,9 @@ popd
# Don't use shebang in vncserver script.
%patch9 -p1 -b .shebang
+# libvnc.so: don't use unexported key_is_down function.
+%patch10 -p1 -b .key_is_down
+
%build
%ifarch sparcv9 sparc64 s390 s390x
export CFLAGS="$RPM_OPT_FLAGS -fPIC"
@@ -336,6 +340,7 @@ fi
%changelog
* Wed Jul 24 2013 Tim Waugh <twaugh at redhat.com> 1.3.0-3
+- libvnc.so: don't use unexported key_is_down function.
- Don't use shebang in vncserver script.
* Fri Jul 12 2013 Tim Waugh <twaugh at redhat.com> 1.3.0-2
More information about the scm-commits
mailing list