Hi, the attached two patches (against tigervnc 1.0.0) are my first
working version of this.
I'm building against 1.7.3.901 under gentoo. So far I've only had the
time to test Xvnc itself, but it seems to be ok so far...
--- tigervnc.orig/unix/xserver/hw/vnc/vncHooks.cc 2009-03-19 13:38:02.000000000 +0000
+++ tigervnc/unix/xserver/hw/vnc/vncHooks.cc 2009-12-17 10:30:57.754976395 +0000
@@ -119,7 +119,7 @@
static void vncHooksStoreColors(ColormapPtr pColormap, int ndef,
xColorItem* pdef);
static Bool vncHooksDisplayCursor(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen, CursorPtr cursor);
@@ -454,7 +454,7 @@
// DisplayCursor - get the cursor shape
static Bool vncHooksDisplayCursor(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen_, CursorPtr cursor)
@@ -462,11 +462,11 @@
SCREEN_UNWRAP(pScreen_, DisplayCursor);
Bool ret = (*pScreen->DisplayCursor) (
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
pDev,
#endif
pScreen, cursor);
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
/*
* XXX DIX calls this function with NULL argument to remove cursor sprite from
* screen. Should we handle this in setCursor as well?
@@ -474,7 +474,7 @@
if (cursor != NullCursor) {
#endif
vncHooksScreen->desktop->setCursor(cursor);
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
}
#endif
--- tigervnc.orig/unix/xserver/hw/vnc/XserverDesktop.h 2009-04-03 13:40:01.000000000 +0100
+++ tigervnc/unix/xserver/hw/vnc/XserverDesktop.h 2009-12-17 10:28:39.967903699 +0000
@@ -30,9 +30,13 @@
((1 * 10000000) + (5 * 100000) + (99 * 1000))
/* Xorg 1.5 branch */
#define XORG_15
-#else
+#elseif XORG_VERSION_CURRENT < \
+ ((1 * 10000000) + (6 * 100000) + (99 * 1000))
/* Xorg 1.6 branch */
#define XORG_16
+#else
+/* Xorg 1.7 branch */
+#define XORG_17
#endif
#include <rfb/SDesktop.h>
--- tigervnc.orig/unix/xserver/hw/vnc/XserverDesktop.cc 2009-04-06 19:45:59.000000000 +0100
+++ tigervnc/unix/xserver/hw/vnc/XserverDesktop.cc 2009-12-17 12:02:10.074902144 +0000
@@ -68,6 +68,17 @@
extern void
CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
#endif
+
+#if defined(XORG_17)
+#include <xkbsrv.h>
+#include <xkbstr.h>
+#include <xserver-properties.h>
+#include "exevents.h"
+extern void
+CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
+extern _X_EXPORT DevPrivateKey CoreDevicePrivateKey;
+#endif
+
#ifdef RANDR
#include "randrstr.h"
#endif
@@ -211,7 +222,7 @@
*/
if (vncKeyboardDevice == NULL) {
vncKeyboardDevice = AddInputDevice(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
serverClient,
#endif
vfbKeybdProc, TRUE);
@@ -220,7 +231,7 @@
if (vncPointerDevice == NULL) {
vncPointerDevice = AddInputDevice(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
serverClient,
#endif
vfbMouseProc, TRUE);
@@ -244,8 +255,13 @@
int i;
pointer retval;
+#ifdef XORG_17
+ i = dixLookupResourceByType(&retval, pScreen->defColormap, RT_COLORMAP, NullClient,
+ DixReadAccess);
+#else
i = dixLookupResource(&retval, pScreen->defColormap, RT_COLORMAP, NullClient,
DixReadAccess);
+#endif
/* Handle suspicious conditions */
assert(i == Success);
@@ -557,7 +573,7 @@
if (!cursorPos.equals(oldCursorPos)) {
oldCursorPos = cursorPos;
(*pScreen->SetCursorPosition) (
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
vncPointerDevice,
#endif
pScreen, cursorPos.x, cursorPos.y, FALSE);
@@ -578,7 +594,7 @@
if (screenWithCursor == pScreen) {
int x, y;
GetSpritePosition(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
vncPointerDevice,
#endif
&x, &y);
@@ -742,7 +758,7 @@
//(*pScreen->SetCursorPosition) (pScreen, pos.x, pos.y, FALSE);
NewCurrentScreen(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
vncPointerDevice,
#endif
pScreen, pos.x, pos.y);
@@ -751,7 +767,7 @@
valuators[0] = pos.x;
valuators[1] = pos.y;
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
GetEventList(&eventq);
#endif
n = GetPointerEvents (eventq, vncPointerDevice, MotionNotify, 0,
@@ -762,7 +778,7 @@
#ifdef XORG_15
eventq + i
#else
- (eventq + i)->event
+ (InternalEvent*) (eventq + i)->event
#endif
);
}
@@ -782,7 +798,7 @@
#ifdef XORG_15
eventq + j
#else
- (eventq + j)->event
+ (InternalEvent*) (eventq + j)->event
#endif
);
}
@@ -976,28 +992,61 @@
delete [] keys;
}
void press() {
+#ifdef XORG_17
+ if (!(XkbStateFieldFromRec(&vncKeyboardDevice->key->xkbInfo->state) & (1<<modIndex))) {
+ KeyCode *modkeymap = NULL;
+ int ret, max_keys_per_mod;
+
+ ret = generate_modkeymap(serverClient, vncKeyboardDevice, &modkeymap, &max_keys_per_mod);
+ if (ret == Success) {
+ tempKeyEvent(modkeymap[modIndex * max_keys_per_mod],
+ true, max_keys_per_mod);
+ pressed = true;
+ xfree(modkeymap);
+ }
+ }
+#else
KeyClassPtr keyc = vncKeyboardDevice->key;
if (!(keyc->state & (1<<modIndex))) {
tempKeyEvent(keyc->modifierKeyMap[modIndex * keyc->maxKeysPerModifier],
- true);
+ true, keyc->maxKeysPerModifier);
pressed = true;
}
+#endif
}
void release() {
+#ifdef XORG_17
+ KeyClassPtr keyc = vncKeyboardDevice->key;
+ if (XkbStateFieldFromRec(&vncKeyboardDevice->key->xkbInfo->state) & (1<<modIndex)) {
+ KeyCode *modkeymap = NULL;
+ int ret, max_keys_per_mod;
+
+ ret = generate_modkeymap(serverClient, vncKeyboardDevice, &modkeymap, &max_keys_per_mod);
+ if (ret == Success) {
+ for (int k = 0; k < max_keys_per_mod; k++) {
+ int keycode = modkeymap[modIndex * max_keys_per_mod + k];
+ if (keycode && IS_PRESSED(keyc, keycode))
+ tempKeyEvent(keycode, false, max_keys_per_mod);
+ }
+ xfree(modkeymap);
+ }
+ }
+#else
KeyClassPtr keyc = vncKeyboardDevice->key;
if (keyc->state & (1<<modIndex)) {
for (int k = 0; k < keyc->maxKeysPerModifier; k++) {
int keycode
= keyc->modifierKeyMap[modIndex * keyc->maxKeysPerModifier + k];
if (keycode && IS_PRESSED(keyc, keycode))
- tempKeyEvent(keycode, false);
+ tempKeyEvent(keycode, false, keyc->maxKeysPerModifier);
}
}
+#endif
}
private:
- void tempKeyEvent(int keycode, bool down) {
+ void tempKeyEvent(int keycode, bool down, int max_keys_per_mod) {
if (keycode) {
- if (!keys) keys = new int[vncKeyboardDevice->key->maxKeysPerModifier];
+ if (!keys) keys = new int[max_keys_per_mod];
keys[nKeys++] = keycode;
generateXKeyEvent(keycode, down);
}
@@ -1011,7 +1060,7 @@
#ifdef XORG_15
eventq + i
#else
- (eventq + i)->event
+ (InternalEvent*) (eventq + i)->event
#endif
);
}
@@ -1100,20 +1149,42 @@
{
DeviceIntPtr master;
KeyClassPtr keyc = vncKeyboardDevice->key;
- KeySymsPtr keymap = &keyc->curKeySyms;
+ KeySymsPtr keymap = NULL;
+ KeyCode *modkeymap = NULL;
+ int max_keys_per_mod;
unsigned int i, n;
int j, k;
+ int state;
if (keysym == XK_Caps_Lock) {
vlog.debug("Ignoring caps lock");
return;
}
+#ifdef XORG_17
+ keymap = XkbGetCoreMap(vncKeyboardDevice);
+ if (!keymap)
+ return;
+
+ if (generate_modkeymap(serverClient, vncKeyboardDevice, &modkeymap, &max_keys_per_mod) != Success) {
+ xfree(keymap->map);
+ xfree(keymap);
+ return;
+ }
+
+ state = XkbStateFieldFromRec(&keyc->xkbInfo->state);
+#else
+ state = keyc->state;
+ max_keys_per_mod = keyc->maxKeysPerModifier;
+ keymap = &keyc->curKeySyms;
+ modkeymap = keyc->modifierKeyMap;
+#endif
+
// find which modifier Mode_switch is on.
int modeSwitchMapIndex = 0;
for (i = 3; i < 8; i++) {
- for (k = 0; k < keyc->maxKeysPerModifier; k++) {
- int keycode = keyc->modifierKeyMap[i * keyc->maxKeysPerModifier + k];
+ for (k = 0; k < max_keys_per_mod; k++) {
+ int keycode = modkeymap[i * max_keys_per_mod + k];
for (j = 0; j < keymap->mapWidth; j++) {
if (keycode != 0 &&
keymap->map[(keycode - keymap->minKeyCode)
@@ -1127,8 +1198,8 @@
}
int col = 0;
- if (keyc->state & (1<<ShiftMapIndex)) col |= 1;
- if (modeSwitchMapIndex && (keyc->state & (1<<modeSwitchMapIndex))) col |= 2;
+ if (state & (1<<ShiftMapIndex)) col |= 1;
+ if (modeSwitchMapIndex && (state & (1<<modeSwitchMapIndex))) col |= 2;
int kc = KeysymToKeycode(keymap, keysym, &col);
@@ -1137,7 +1208,7 @@
// local keyboard (it might be Tab, ISO_Left_Tab or HP's private BackTab
// keysym, and quite possibly some others too). We never get ISO_Left_Tab
// here because it's already been translated in VNCSConnectionST.
- if (keysym == XK_Tab && (keyc->state & (1<<ShiftMapIndex)))
+ if (keysym == XK_Tab && (state & (1<<ShiftMapIndex)))
col |= 1;
if (kc == 0) {
@@ -1180,6 +1251,11 @@
}
if (kc < keymap->minKeyCode) {
vlog.info("Keyboard mapping full - ignoring unknown keysym 0x%x",keysym);
+#ifdef XORG_17
+ xfree(keymap->map);
+ xfree(keymap);
+ xfree(modkeymap);
+#endif
return;
}
}
@@ -1187,12 +1263,18 @@
// See if it's a modifier key. If so, then don't do any auto-repeat, because
// the X server will translate each press into a release followed by a press.
for (i = 0; i < 8; i++) {
- for (k = 0; k < keyc->maxKeysPerModifier; k++) {
- if (kc == keyc->modifierKeyMap[i * keyc->maxKeysPerModifier + k] &&
- IS_PRESSED(keyc,kc) && down)
+ for (k = 0; k < max_keys_per_mod; k++) {
+ if (kc == modkeymap[i * max_keys_per_mod + k] &&
+ IS_PRESSED(keyc,kc) && down) {
+#ifdef XORG_17
+ xfree(keymap->map);
+ xfree(keymap);
+ xfree(modkeymap);
+#endif
return;
}
}
+ }
ModifierState shift(ShiftMapIndex);
ModifierState modeSwitch(modeSwitchMapIndex);
@@ -1216,10 +1298,16 @@
#ifdef XORG_15
eventq + i
#else
- (eventq + i)->event
+ (InternalEvent*) (eventq + i)->event
#endif
);
}
+
+#ifdef XORG_17
+ xfree(keymap->map);
+ xfree(keymap);
+ xfree(modkeymap);
+#endif
}
static KeySym KeyCodetoKeySym(KeySymsPtr keymap, int keycode, int col)
@@ -1444,7 +1532,9 @@
KeySymsRec keySyms;
CARD8 modMap[MAP_LENGTH];
DevicePtr pDev = (DevicePtr)pDevice;
-#ifdef XKB
+#ifdef XORG_17
+ XkbRMLVOSet rmlvo;
+#elif defined(XKB)
XkbComponentNamesRec names;
#endif
@@ -1452,6 +1542,16 @@
{
case DEVICE_INIT:
GetMappings(&keySyms, modMap);
+#ifdef XORG_17
+ rmlvo.rules = (char*) "base";
+ rmlvo.model = (char*) "pc105";
+ rmlvo.layout = (char*) "us";
+ rmlvo.variant = NULL;
+ rmlvo.options = NULL;
+ XkbSetRulesDflts(&rmlvo);
+ InitKeyboardDeviceStruct(pDevice, &rmlvo,
+ (BellProcPtr)vfbBell, (KbdCtrlProcPtr)NoopDDA);
+#else
#ifdef XKB
if (!noXkbExtension) {
memset(&names, 0, sizeof (names));
@@ -1460,11 +1560,12 @@
(BellProcPtr)vfbBell,
(KbdCtrlProcPtr)NoopDDA);
} else
-#endif
+#endif /* XKB */
{
InitKeyboardDeviceStruct(pDev, &keySyms, modMap,
(BellProcPtr)vfbBell, (KbdCtrlProcPtr)NoopDDA);
}
+#endif /* XORG_17 */
break;
case DEVICE_ON:
pDev->on = TRUE;
@@ -1482,6 +1583,10 @@
{
BYTE map[6];
DevicePtr pDev = (DevicePtr)pDevice;
+#ifdef XORG_17
+ Atom btn_labels[5];
+ Atom axes_labels[2];
+#endif
switch (onoff)
{
@@ -1491,11 +1596,28 @@
map[3] = 3;
map[4] = 4;
map[5] = 5;
- InitPointerDeviceStruct(pDev, map, 5,
#ifdef XORG_15
+ InitPointerDeviceStruct(pDev, map, 5,
GetMotionHistory,
-#endif
(PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(), 2);
+#elif defined(XORG_16)
+ InitPointerDeviceStruct(pDev, map, 5,
+ (PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(), 2);
+#elif defined(XORG_17)
+ btn_labels[5] = XIGetKnownProperty((char*) BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
+ btn_labels[4] = XIGetKnownProperty((char*) BTN_LABEL_PROP_BTN_WHEEL_DOWN);
+ btn_labels[3] = XIGetKnownProperty((char*) BTN_LABEL_PROP_BTN_WHEEL_UP);
+ btn_labels[2] = XIGetKnownProperty((char*) BTN_LABEL_PROP_BTN_RIGHT);
+ btn_labels[1] = XIGetKnownProperty((char*) BTN_LABEL_PROP_BTN_MIDDLE);
+ btn_labels[0] = XIGetKnownProperty((char*) BTN_LABEL_PROP_BTN_LEFT);
+
+ axes_labels[0] = XIGetKnownProperty((char*) AXIS_LABEL_PROP_REL_X);
+ axes_labels[1] = XIGetKnownProperty((char*) AXIS_LABEL_PROP_REL_Y);
+
+ InitPointerDeviceStruct(pDev, map, 5, btn_labels,
+ (PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(),
+ 2, axes_labels);
+#endif
break;
case DEVICE_ON:
--- tigervnc.orig/unix/xserver/hw/vnc/xvnc.cc 2009-08-19 10:36:24.000000000 +0100
+++ tigervnc/unix/xserver/hw/vnc/xvnc.cc 2009-12-17 12:57:41.955905374 +0000
@@ -80,6 +80,13 @@
#endif /* RANDR */
#include <X11/keysym.h>
extern char buildtime[];
+
+#ifdef XORG_17
+#undef VENDOR_RELEASE
+#undef VENDOR_STRING
+#include <site.h>
+#endif
+
#undef class
#undef public
}
@@ -628,9 +635,16 @@
{
if (pmap->mid != pmap->pScreen->defColormap)
{
+#if defined(XORG_15) || defined(XORG_16)
curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
RT_COLORMAP);
(*pmap->pScreen->InstallColormap)(curpmap);
+#else
+ int ret = dixLookupResourceByType((pointer*) &curpmap, pmap->pScreen->defColormap, RT_COLORMAP, NullClient,
+ DixReadAccess);
+ if (ret == Success)
+ (*pmap->pScreen->InstallColormap)((ColormapPtr)curpmap);
+#endif
}
}
}
@@ -736,7 +750,7 @@
}
static Bool vfbRealizeCursor(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen, CursorPtr pCursor) {
@@ -744,7 +758,7 @@
}
static Bool vfbUnrealizeCursor(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen, CursorPtr pCursor) {
@@ -752,7 +766,7 @@
}
static void vfbSetCursor(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
@@ -760,14 +774,14 @@
}
static void vfbMoveCursor(
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen, int x, int y)
{
}
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
static Bool
vfbDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen)
{
@@ -785,7 +799,7 @@
vfbUnrealizeCursor,
vfbSetCursor,
vfbMoveCursor
-#ifdef XORG_16
+#if defined(XORG_16) || defined(XORG_17)
, vfbDeviceCursorInitialize,
vfbDeviceCursorCleanup
#endif
--- tigervnc.orig/unix/xserver/hw/vnc/vncExtInit.cc 2009-04-03 13:40:01.000000000 +0100
+++ tigervnc/unix/xserver/hw/vnc/vncExtInit.cc 2009-12-17 11:12:13.472905066 +0000
@@ -185,7 +185,7 @@
vncExtGeneration = serverGeneration;
ExtensionEntry* extEntry
- = AddExtension(VNCEXTNAME, VncExtNumberEvents, VncExtNumberErrors,
+ = AddExtension((char*) VNCEXTNAME, VncExtNumberEvents, VncExtNumberErrors,
ProcVncExtDispatch, SProcVncExtDispatch, vncResetProc,
StandardMinorOpcode);
if (!extEntry) {
--- tigervnc.orig/unix/xserver/hw/vnc/Makefile.am 2009-02-25 13:36:14.000000000 +0000
+++ tigervnc/unix/xserver/hw/vnc/Makefile.am 2009-12-17 10:01:39.054604007 +0000
@@ -50,7 +50,7 @@
libvnc_la_LDFLAGS = -module -avoid-version
-libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS)
+libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS) $(top_srcdir)/Xi/libXi.la $(top_srcdir)/dix/libdix.la
EXTRA_DIST = Xvnc.man
--- xserver/configure.ac.vnc 2009-12-16 18:53:17.208009726 +0000
+++ xserver/configure.ac 2009-12-16 19:00:56.624009167 +0000
@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.7.3.901, [https
RELEASE_DATE="2009-12-11"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
-AM_MAINTAINER_MODE
AC_CONFIG_FILES([
shave
@@ -64,6 +63,7 @@ dnl forcing an entire recompile.x
AC_CONFIG_HEADERS(include/version-config.h)
AC_PROG_CC
+AC_PROG_CXX
AM_PROG_AS
AC_PROG_INSTALL
AC_PROG_LN_S
@@ -1383,6 +1383,9 @@ 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_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"])
dnl Xnest DDX
@@ -1421,6 +1424,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'
@@ -1649,7 +1654,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])
@@ -2094,6 +2098,7 @@ hw/dmx/input/Makefile
hw/dmx/glxProxy/Makefile
hw/dmx/Makefile
hw/vfb/Makefile
+hw/vnc/Makefile
hw/xnest/Makefile
hw/xwin/Makefile
hw/xquartz/Makefile
--- xserver/mi/miinitext.c.vnc 2009-12-16 18:53:20.864010515 +0000
+++ xserver/mi/miinitext.c 2009-12-16 19:01:23.664009203 +0000
@@ -274,6 +274,7 @@ extern void DamageExtensionInit(INITARGS
extern void CompositeExtensionInit(INITARGS);
#endif
extern void GEExtensionInit(INITARGS);
+extern void vncExtensionInit(INITARGS);
/* The following is only a small first step towards run-time
* configurable extensions.
@@ -454,6 +455,7 @@ InitExtensions(int argc, char *argv[])
#ifdef XF86BIGFONT
if (!noXFree86BigfontExtension) XFree86BigfontExtensionInit();
#endif
+ vncExtensionInit();
#if !defined(NO_HW_ONLY_EXTS)
#if defined(XF86VIDMODE)
if (!noXFree86VidModeExtension) XFree86VidModeExtensionInit();
--- xserver/hw/Makefile.am.vnc 2009-12-16 18:53:17.816009029 +0000
+++ xserver/hw/Makefile.am 2009-12-16 19:01:31.064009345 +0000
@@ -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
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel