]>
Commit | Line | Data |
---|---|---|
773b64b1 JR |
1 | 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 |