1 diff -up tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc.xorg111 tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc
2 --- tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc.xorg111 2011-05-12 10:42:52.813229993 +0200
3 +++ tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc 2011-05-12 10:52:41.036211939 +0200
4 @@ -305,7 +305,7 @@ static inline void pressKey(DeviceIntPtr
5 vlog.debug("%s %d %s", msg, kc, down ? "down" : "up");
7 action = down ? KeyPress : KeyRelease;
8 - n = GetKeyboardEvents(eventq, dev, action, kc);
9 + n = GetKeyboardEvents(eventq, dev, action, kc, NULL);
10 enqueueEvents(dev, n);
13 @@ -341,8 +341,11 @@ public:
14 int state, maxKeysPerMod, keycode;
16 KeyCode *modmap = NULL;
17 + DeviceIntPtr master;
19 - state = XkbStateFieldFromRec(&dev->u.master->key->xkbInfo->state);
20 + master = GetMaster(dev, MASTER_KEYBOARD);
22 + state = XkbStateFieldFromRec(&master->key->xkbInfo->state);
24 KeyClassPtr keyc = dev->key;
26 @@ -379,8 +382,10 @@ public:
29 KeyCode *modmap = NULL;
30 + DeviceIntPtr master;
32 - keyc = dev->u.master->key;
33 + master = GetMaster(dev, MASTER_KEYBOARD);
35 state = XkbStateFieldFromRec(&keyc->xkbInfo->state);
38 @@ -565,9 +570,7 @@ static inline int isModifier(KeySymsPtr
40 void InputDevice::keyEvent(rdr::U32 keysym, bool down)
46 KeySymsPtr keymap = NULL;
48 @@ -596,7 +599,8 @@ void InputDevice::keyEvent(rdr::U32 keys
52 - keyc = keyboardDev->u.master->key;
53 + master = GetMaster(keyboardDev, MASTER_KEYBOARD);
56 keymap = XkbGetCoreMap(keyboardDev);
58 @@ -753,7 +757,7 @@ ModeSwitchFound:
59 XkbApplyMappingChange(keyboardDev, keymap, minKeyCode,
60 maxKeyCode - minKeyCode + 1,
62 - XkbCopyDeviceKeymap(keyboardDev->u.master, keyboardDev);
63 + XkbCopyDeviceKeymap(master, keyboardDev);
64 #endif /* XORG < 17 */
67 diff -up tigervnc-1.0.90/unix/xserver/hw/vnc/xorg-version.h.xorg111 tigervnc-1.0.90/unix/xserver/hw/vnc/xorg-version.h
68 --- tigervnc-1.0.90/unix/xserver/hw/vnc/xorg-version.h.xorg111 2011-05-12 10:40:34.109227333 +0200
69 +++ tigervnc-1.0.90/unix/xserver/hw/vnc/xorg-version.h 2011-05-12 10:41:10.970229530 +0200
72 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (10 * 100000) + (99 * 1000))
74 +#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000))
77 #error "X.Org newer than 1.10 is not supported"
79 diff -up tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc.xorg111 tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc
80 --- tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc.xorg111 2011-05-12 10:54:21.068235787 +0200
81 +++ tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc 2011-05-12 10:59:01.867225478 +0200
82 @@ -670,8 +670,13 @@ vfbUninstallColormap(ColormapPtr pmap)
84 if (pmap->mid != pmap->pScreen->defColormap)
87 curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
90 + dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap,
91 + RT_COLORMAP, serverClient, DixUnknownAccess);
93 (*pmap->pScreen->InstallColormap)(curpmap);