Adam Tkac 6db666f
diff -up tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc.xorg111 tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc
Adam Tkac 6db666f
--- tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc.xorg111	2011-05-12 10:42:52.813229993 +0200
Adam Tkac 6db666f
+++ tigervnc-1.0.90/unix/xserver/hw/vnc/Input.cc	2011-05-12 10:52:41.036211939 +0200
Adam Tkac 6db666f
@@ -305,7 +305,7 @@ static inline void pressKey(DeviceIntPtr
Adam Tkac 6db666f
 		vlog.debug("%s %d %s", msg, kc, down ? "down" : "up");
Adam Tkac 6db666f
 
Adam Tkac 6db666f
 	action = down ? KeyPress : KeyRelease;
Adam Tkac 6db666f
-	n = GetKeyboardEvents(eventq, dev, action, kc);
Adam Tkac 6db666f
+	n = GetKeyboardEvents(eventq, dev, action, kc, NULL);
Adam Tkac 6db666f
 	enqueueEvents(dev, n);
Adam Tkac 6db666f
 }
Adam Tkac 6db666f
 
Adam Tkac 6db666f
@@ -341,8 +341,11 @@ public:
Adam Tkac 6db666f
 		int state, maxKeysPerMod, keycode;
Adam Tkac 6db666f
 #if XORG >= 17
Adam Tkac 6db666f
 		KeyCode *modmap = NULL;
Adam Tkac 6db666f
+		DeviceIntPtr master;
Adam Tkac 6db666f
 
Adam Tkac 6db666f
-		state = XkbStateFieldFromRec(&dev->u.master->key->xkbInfo->state);
Adam Tkac 6db666f
+		master = GetMaster(dev, MASTER_KEYBOARD);
Adam Tkac 6db666f
+
Adam Tkac 6db666f
+		state = XkbStateFieldFromRec(&master->key->xkbInfo->state);
Adam Tkac 6db666f
 #else
Adam Tkac 6db666f
 		KeyClassPtr keyc = dev->key;
Adam Tkac 6db666f
 		state = keyc->state;
Adam Tkac 6db666f
@@ -379,8 +382,10 @@ public:
Adam Tkac 6db666f
 		KeyClassPtr keyc;
Adam Tkac 6db666f
 #if XORG >= 17
Adam Tkac 6db666f
 		KeyCode *modmap = NULL;
Adam Tkac 6db666f
+		DeviceIntPtr master;
Adam Tkac 6db666f
 
Adam Tkac 6db666f
-		keyc = dev->u.master->key;
Adam Tkac 6db666f
+		master = GetMaster(dev, MASTER_KEYBOARD);
Adam Tkac 6db666f
+		keyc = master->key;
Adam Tkac 6db666f
 		state = XkbStateFieldFromRec(&keyc->xkbInfo->state);
Adam Tkac 6db666f
 #else
Adam Tkac 6db666f
 		keyc = dev->key;
Adam Tkac 6db666f
@@ -565,9 +570,7 @@ static inline int isModifier(KeySymsPtr
Adam Tkac 6db666f
 
Adam Tkac 6db666f
 void InputDevice::keyEvent(rdr::U32 keysym, bool down)
Adam Tkac 6db666f
 {
Adam Tkac 6db666f
-#if XORG < 17
Adam Tkac 6db666f
 	DeviceIntPtr master;
Adam Tkac 6db666f
-#endif
Adam Tkac 6db666f
 	KeyClassPtr keyc;
Adam Tkac 6db666f
 	KeySymsPtr keymap = NULL;
Adam Tkac 6db666f
 	KeySym *map = NULL;
Adam Tkac 6db666f
@@ -596,7 +599,8 @@ void InputDevice::keyEvent(rdr::U32 keys
Adam Tkac 6db666f
 	}
Adam Tkac 6db666f
 
Adam Tkac 6db666f
 #if XORG >= 17
Adam Tkac 6db666f
-	keyc = keyboardDev->u.master->key;
Adam Tkac 6db666f
+	master = GetMaster(keyboardDev, MASTER_KEYBOARD);
Adam Tkac 6db666f
+	keyc = master->key;
Adam Tkac 6db666f
 
Adam Tkac 6db666f
 	keymap = XkbGetCoreMap(keyboardDev);
Adam Tkac 6db666f
 	if (!keymap) {
Adam Tkac 6db666f
@@ -753,7 +757,7 @@ ModeSwitchFound:
Adam Tkac 6db666f
 			XkbApplyMappingChange(keyboardDev, keymap, minKeyCode,
Adam Tkac 6db666f
 					      maxKeyCode - minKeyCode + 1,
Adam Tkac 6db666f
 					      NULL, serverClient);
Adam Tkac 6db666f
-			XkbCopyDeviceKeymap(keyboardDev->u.master, keyboardDev);
Adam Tkac 6db666f
+			XkbCopyDeviceKeymap(master, keyboardDev);
Adam Tkac 6db666f
 #endif /* XORG < 17 */
Adam Tkac 6db666f
 			break;
Adam Tkac 6db666f
 		}
Adam Tkac 6db666f
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
Adam Tkac 6db666f
--- tigervnc-1.0.90/unix/xserver/hw/vnc/xorg-version.h.xorg111	2011-05-12 10:40:34.109227333 +0200
Adam Tkac 6db666f
+++ tigervnc-1.0.90/unix/xserver/hw/vnc/xorg-version.h	2011-05-12 10:41:10.970229530 +0200
Adam Tkac 6db666f
@@ -36,6 +36,8 @@
Adam Tkac 6db666f
 #define XORG 19
Adam Tkac 6db666f
 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (10 * 100000) + (99 * 1000))
Adam Tkac 6db666f
 #define XORG 110
Adam Tkac 6db666f
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000))
Adam Tkac 6db666f
+#define XORG 111
Adam Tkac 6db666f
 #else
Adam Tkac 6db666f
 #error "X.Org newer than 1.10 is not supported"
Adam Tkac 6db666f
 #endif
Adam Tkac 6db666f
diff -up tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc.xorg111 tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc
Adam Tkac 6db666f
--- tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc.xorg111	2011-05-12 10:54:21.068235787 +0200
Adam Tkac 6db666f
+++ tigervnc-1.0.90/unix/xserver/hw/vnc/xvnc.cc	2011-05-12 10:59:01.867225478 +0200
Adam Tkac 6db666f
@@ -670,8 +670,13 @@ vfbUninstallColormap(ColormapPtr pmap)
Adam Tkac 6db666f
     {
Adam Tkac 6db666f
 	if (pmap->mid != pmap->pScreen->defColormap)
Adam Tkac 6db666f
 	{
Adam Tkac 6db666f
+#if XORG < 111
Adam Tkac 6db666f
 	    curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
Adam Tkac 6db666f
 						   RT_COLORMAP);
Adam Tkac 6db666f
+#else
Adam Tkac 6db666f
+	    dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap,
Adam Tkac 6db666f
+				    RT_COLORMAP, serverClient, DixUnknownAccess);
Adam Tkac 6db666f
+#endif
Adam Tkac 6db666f
 	    (*pmap->pScreen->InstallColormap)(curpmap);
Adam Tkac 6db666f
 	}
Adam Tkac 6db666f
     }