/* 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. */
#endif
}
}
+#endif /* XORG < 111 */
+#if XORG < 111
static void enqueueEvents(DeviceIntPtr dev, int n)
{
int i;
);
}
}
+#endif /* XORG < 111 */
InputDevice::InputDevice(rfb::VNCServerST *_server)
: server(_server), oldButtonMask(0)
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
#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
}
}
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
#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;
}
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) \
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;
#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;
}
#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) {
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;
}
--- /dev/null
+diff -up xserver/configure.ac.vnc xserver/configure.ac
+--- xserver/configure.ac.vnc 2012-08-28 14:08:11.523694314 +0200
++++ xserver/configure.ac 2012-08-28 14:08:59.122696574 +0200
+@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.11.4, [https://
+ RELEASE_DATE="2012-01-27"
+ AC_CONFIG_SRCDIR([Makefile.am])
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-AM_MAINTAINER_MODE
+
+ # Require xorg-macros minimum of 1.14 for XORG_COMPILER_BRAND in XORG_DEFAULT_OPTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+@@ -72,6 +71,7 @@ dnl forcing an entire recompile.x
+ AC_CONFIG_HEADERS(include/version-config.h)
+
+ AM_PROG_AS
++AC_PROG_CXX
+ AC_PROG_LN_S
+ AC_LIBTOOL_WIN32_DLL
+ AC_DISABLE_STATIC
+@@ -1476,6 +1476,10 @@ if test "x$XVFB" = xyes; then
+ AC_SUBST([XVFB_SYS_LIBS])
+ fi
+
++dnl Xvnc DDX
++AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC"])
++AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"])
++AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"])
+
+ dnl Xnest DDX
+
+@@ -1514,6 +1518,8 @@ xorg_bus_linuxpci=no
+ xorg_bus_bsdpci=no
+ xorg_bus_sparc=no
+
++AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
++
+ if test "x$XORG" = xyes; then
+ XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
+ XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
+@@ -1750,7 +1756,6 @@ if test "x$XORG" = xyes; then
+ AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
+ AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
+ AC_DEFINE(XFree86LOADER, 1, [Building loadable XFree86 server])
+- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
+ AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
+ AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
+ AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
+@@ -2217,6 +2222,7 @@ hw/dmx/Makefile
+ hw/dmx/man/Makefile
+ hw/vfb/Makefile
+ hw/vfb/man/Makefile
++hw/vnc/Makefile
+ hw/xnest/Makefile
+ hw/xnest/man/Makefile
+ hw/xwin/Makefile
+diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
+--- xserver/hw/Makefile.am.vnc 2012-08-28 14:08:12.554694327 +0200
++++ xserver/hw/Makefile.am 2012-08-28 14:08:59.123696574 +0200
+@@ -33,7 +33,8 @@ SUBDIRS = \
+ $(XNEST_SUBDIRS) \
+ $(DMX_SUBDIRS) \
+ $(KDRIVE_SUBDIRS) \
+- $(XQUARTZ_SUBDIRS)
++ $(XQUARTZ_SUBDIRS) \
++ vnc
+
+ DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
+
+diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
+--- xserver/mi/miinitext.c.vnc 2012-08-28 14:08:13.063694337 +0200
++++ xserver/mi/miinitext.c 2012-08-28 14:08:59.123696574 +0200
+@@ -263,6 +263,9 @@ extern void DamageExtensionInit(INITARGS
+ extern void CompositeExtensionInit(INITARGS);
+ #endif
+ extern void GEExtensionInit(INITARGS);
++#ifdef TIGERVNC
++extern void vncExtensionInit(INITARGS);
++#endif
+
+ /* The following is only a small first step towards run-time
+ * configurable extensions.
+@@ -433,6 +436,9 @@ InitExtensions(int argc, char *argv[])
+ #ifdef XF86BIGFONT
+ if (!noXFree86BigfontExtension) XFree86BigfontExtensionInit();
+ #endif
++#ifdef TIGERVNC
++ vncExtensionInit();
++#endif
+ #if !defined(NO_HW_ONLY_EXTS)
+ #if defined(XF86VIDMODE)
+ if (!noXFree86VidModeExtension) XFree86VidModeExtensionInit();