Annotation of /trunk/tigervnc/patches/tigervnc-1.3.0-key_is_down.patch
Parent Directory | Revision Log
Revision 2252 -
(hide annotations)
(download)
Mon Aug 12 09:25:56 2013 UTC (11 years, 1 month ago) by niro
File size: 1668 byte(s)
Mon Aug 12 09:25:56 2013 UTC (11 years, 1 month ago) by niro
File size: 1668 byte(s)
-add patches for 1.3.0
1 | niro | 2252 | 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 |
2 | --- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.key_is_down 2013-07-24 12:54:41.461930866 +0100 | ||
3 | +++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc 2013-07-24 13:04:39.743663652 +0100 | ||
4 | @@ -321,7 +321,11 @@ std::list<KeyCode> InputDevice::releaseS | ||
5 | XkbAction *act; | ||
6 | unsigned char mask; | ||
7 | |||
8 | - if (!key_is_down(master, key, KEY_PROCESSED)) | ||
9 | + int bit; | ||
10 | + BYTE *kptr; | ||
11 | + kptr = &master->key->down[key >> 3]; | ||
12 | + bit = 1 << (key & 7); | ||
13 | + if (*kptr & bit) | ||
14 | continue; | ||
15 | |||
16 | act = XkbKeyActionPtr(xkb, key, state); | ||
17 | @@ -402,7 +406,11 @@ std::list<KeyCode> InputDevice::releaseL | ||
18 | XkbAction *act; | ||
19 | unsigned char key_mask; | ||
20 | |||
21 | - if (!key_is_down(master, key, KEY_PROCESSED)) | ||
22 | + int bit; | ||
23 | + BYTE *kptr; | ||
24 | + kptr = &master->key->down[key >> 3]; | ||
25 | + bit = 1 << (key & 7); | ||
26 | + if (*kptr & bit) | ||
27 | continue; | ||
28 | |||
29 | act = XkbKeyActionPtr(xkb, key, state); | ||
30 | @@ -638,6 +646,8 @@ void InputDevice::vncXkbProcessDeviceEve | ||
31 | |||
32 | if (event->device_event.sourceid == self->keyboardDev->id) { | ||
33 | XkbControlsPtr ctrls; | ||
34 | + int bit; | ||
35 | + BYTE *kptr; | ||
36 | |||
37 | /* | ||
38 | * We need to bypass AccessX since it is timing sensitive and | ||
39 | @@ -651,8 +661,10 @@ void InputDevice::vncXkbProcessDeviceEve | ||
40 | * This flag needs to be set for key repeats to be properly | ||
41 | * respected. | ||
42 | */ | ||
43 | + kptr = &dev->key->down[event->device_event.detail.key >> 3]; | ||
44 | + bit = 1 << (event->device_event.detail.key & 7); | ||
45 | if ((event->device_event.type == ET_KeyPress) && | ||
46 | - key_is_down(dev, event->device_event.detail.key, KEY_PROCESSED)) | ||
47 | + (*kptr & bit)) | ||
48 | event->device_event.key_repeat = TRUE; | ||
49 | } | ||
50 |