diff -up xserver/hw/vnc/Input.cc.xorg111 xserver/hw/vnc/Input.cc --- xserver/hw/vnc/Input.cc.xorg111 2011-08-09 23:16:36.000000000 +0200 +++ xserver/hw/vnc/Input.cc 2011-11-11 11:59:14.226819903 +0100 @@ -82,10 +82,11 @@ static KeyCode KeysymToKeycode(KeySymsPt /* Event queue is shared between all devices. */ #if XORG == 15 static xEvent *eventq = NULL; -#else +#elif XORG < 111 static EventList *eventq = NULL; #endif +#if XORG < 111 static void initEventq(void) { /* eventq is never free()-ed because it exists during server life. */ @@ -100,7 +101,9 @@ static void initEventq(void) #endif } } +#endif /* XORG < 111 */ +#if XORG < 111 static void enqueueEvents(DeviceIntPtr dev, int n) { int i; @@ -122,6 +125,7 @@ static void enqueueEvents(DeviceIntPtr d ); } } +#endif /* XORG < 111 */ InputDevice::InputDevice(rfb::VNCServerST *_server) : server(_server), oldButtonMask(0) @@ -141,12 +145,17 @@ InputDevice::InputDevice(rfb::VNCServerS keyboardProc, TRUE); RegisterKeyboardDevice(keyboardDev); #endif +#if XORG < 111 initEventq(); +#endif } void InputDevice::PointerButtonAction(int buttonMask) { - int i, n; + int i; +#if XORG < 111 + int n; +#endif #if XORG >= 110 ValuatorMask mask; #endif @@ -160,13 +169,17 @@ void InputDevice::PointerButtonAction(in #if XORG < 110 n = GetPointerEvents(eventq, pointerDev, action, i + 1, POINTER_RELATIVE, 0, 0, NULL); -#else + enqueueEvents(pointerDev, n); +#elif XORG < 111 valuator_mask_set_range(&mask, 0, 0, NULL); n = GetPointerEvents(eventq, pointerDev, action, i + 1, POINTER_RELATIVE, &mask); -#endif enqueueEvents(pointerDev, n); - +#else + valuator_mask_set_range(&mask, 0, 0, NULL); + QueuePointerEvents(pointerDev, action, i + 1, + POINTER_RELATIVE, &mask); +#endif } } @@ -175,7 +188,10 @@ void InputDevice::PointerButtonAction(in void InputDevice::PointerMove(const rfb::Point &pos) { - int n, valuators[2]; + int valuators[2]; +#if XORG < 111 + int n; +#endif #if XORG >= 110 ValuatorMask mask; #endif @@ -190,12 +206,16 @@ void InputDevice::PointerMove(const rfb: #if XORG < 110 n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, 0, 2, valuators); -#else + enqueueEvents(pointerDev, n); +#elif XORG < 111 valuator_mask_set_range(&mask, 0, 2, valuators); n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, &mask); -#endif enqueueEvents(pointerDev, n); +#else + valuator_mask_set_range(&mask, 0, 2, valuators); + QueuePointerEvents(pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, &mask); +#endif cursorPos = pos; } @@ -299,14 +319,20 @@ void InputDevice::initInputDevice(void) static inline void pressKey(DeviceIntPtr dev, int kc, bool down, const char *msg) { int action; +#if XORG < 111 unsigned int n; +#endif if (msg != NULL) vlog.debug("%s %d %s", msg, kc, down ? "down" : "up"); action = down ? KeyPress : KeyRelease; - n = GetKeyboardEvents(eventq, dev, action, kc); +#if XORG < 111 + n = GetKeyboardEvents(eventq, dev, action, kc, NULL); enqueueEvents(dev, n); +#else + QueueKeyboardEvents(dev, action, kc, NULL); +#endif } #define IS_PRESSED(keyc, keycode) \ @@ -341,8 +367,11 @@ public: int state, maxKeysPerMod, keycode; #if XORG >= 17 KeyCode *modmap = NULL; - +#if XORG >= 111 + state = XkbStateFieldFromRec(&dev->master->key->xkbInfo->state); +#else /* XORG >= 111 */ state = XkbStateFieldFromRec(&dev->u.master->key->xkbInfo->state); +#endif /* XORG >= 111 */ #else KeyClassPtr keyc = dev->key; state = keyc->state; @@ -380,7 +409,11 @@ public: #if XORG >= 17 KeyCode *modmap = NULL; +#if XORG >= 111 + keyc = dev->master->key; +#else /* XORG >= 111 */ keyc = dev->u.master->key; +#endif /* XORG >= 111 */ state = XkbStateFieldFromRec(&keyc->xkbInfo->state); #else keyc = dev->key; @@ -596,7 +629,11 @@ void InputDevice::keyEvent(rdr::U32 keys } #if XORG >= 17 +#if XORG >= 111 + keyc = keyboardDev->master->key; +#else /* XORG >= 111 */ keyc = keyboardDev->u.master->key; +#endif /* XORG >= 111 */ keymap = XkbGetCoreMap(keyboardDev); if (!keymap) { @@ -753,7 +790,11 @@ ModeSwitchFound: XkbApplyMappingChange(keyboardDev, keymap, minKeyCode, maxKeyCode - minKeyCode + 1, NULL, serverClient); +#if XORG >= 111 + XkbCopyDeviceKeymap(keyboardDev->master, keyboardDev); +#else XkbCopyDeviceKeymap(keyboardDev->u.master, keyboardDev); +#endif #endif /* XORG < 17 */ break; } diff -up xserver/hw/vnc/xorg-version.h.xorg111 xserver/hw/vnc/xorg-version.h --- xserver/hw/vnc/xorg-version.h.xorg111 2011-08-09 23:16:36.000000000 +0200 +++ xserver/hw/vnc/xorg-version.h 2011-11-11 11:55:32.255835319 +0100 @@ -36,6 +36,8 @@ #define XORG 19 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (10 * 100000) + (99 * 1000)) #define XORG 110 +#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000)) +#define XORG 111 #else #error "X.Org newer than 1.10 is not supported" #endif diff -up xserver/hw/vnc/xvnc.cc.xorg111 xserver/hw/vnc/xvnc.cc --- xserver/hw/vnc/xvnc.cc.xorg111 2011-08-09 23:16:36.000000000 +0200 +++ xserver/hw/vnc/xvnc.cc 2011-11-11 11:55:32.256835319 +0100 @@ -211,7 +211,11 @@ static void vfbFreeFramebufferMemory(vfb extern "C" { +#if XORG < 111 void ddxGiveUp() +#else +void ddxGiveUp(enum ExitCode error) +#endif { int i; @@ -221,9 +225,17 @@ void ddxGiveUp() } void +#if XORG < 111 AbortDDX() +#else +AbortDDX(enum ExitCode error) +#endif { +#if XORG < 111 ddxGiveUp(); +#else + ddxGiveUp(error); +#endif } #ifdef __DARWIN__ @@ -668,8 +680,13 @@ vfbUninstallColormap(ColormapPtr pmap) { if (pmap->mid != pmap->pScreen->defColormap) { +#if XORG < 111 curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap, RT_COLORMAP); +#else + dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap, + RT_COLORMAP, serverClient, DixUnknownAccess); +#endif (*pmap->pScreen->InstallColormap)(curpmap); } }