1.4.2.
This commit is contained in:
parent
bbcb717d22
commit
3994e4cda7
@ -1,29 +0,0 @@
|
||||
diff -up tigervnc-1.3.0/unix/xserver/configure.ac.jx tigervnc-1.3.0/unix/xserver/configure.ac
|
||||
--- tigervnc-1.3.0/unix/xserver/configure.ac.jx 2013-11-07 11:39:49.000000000 -0500
|
||||
+++ tigervnc-1.3.0/unix/xserver/configure.ac 2013-11-07 11:40:17.215043570 -0500
|
||||
@@ -1597,7 +1596,7 @@ fi
|
||||
|
||||
dnl Xvnc DDX
|
||||
AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"])
|
||||
-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_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_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
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h.jx tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h.jx 2013-07-01 08:41:24.000000000 -0400
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/xorg-version.h 2013-11-07 11:39:49.749992669 -0500
|
||||
@@ -44,8 +44,12 @@
|
||||
#define XORG 113
|
||||
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (14 * 100000) + (99 * 1000))
|
||||
#define XORG 114
|
||||
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (15 * 100000) + (99 * 1000))
|
||||
+#define XORG 115
|
||||
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (16 * 100000) + (99 * 1000))
|
||||
+#define XORG 116
|
||||
#else
|
||||
-#error "X.Org newer than 1.14 is not supported"
|
||||
+#error "X.Org newer than 1.16 is not supported"
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,268 +0,0 @@
|
||||
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc
|
||||
--- tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc.116 2013-05-30 16:53:40.000000000 +0200
|
||||
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/Input.cc 2014-04-28 16:55:02.591440218 +0200
|
||||
@@ -262,7 +262,7 @@ static int pointerProc(DeviceIntPtr pDev
|
||||
return Success;
|
||||
}
|
||||
|
||||
-static void keyboardBell(int percent, DeviceIntPtr device, pointer ctrl,
|
||||
+static void keyboardBell(int percent, DeviceIntPtr device, void * ctrl,
|
||||
int class_)
|
||||
{
|
||||
if (percent > 0)
|
||||
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc
|
||||
--- tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc.116 2014-04-28 16:55:02.530441812 +0200
|
||||
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/XserverDesktop.cc 2014-04-28 16:55:02.592440192 +0200
|
||||
@@ -48,7 +48,7 @@ extern "C" {
|
||||
#define public c_public
|
||||
#define class c_class
|
||||
|
||||
-extern char *display;
|
||||
+extern const char *display;
|
||||
|
||||
#include "colormapst.h"
|
||||
#ifdef RANDR
|
||||
@@ -174,7 +174,7 @@ void XserverDesktop::serverReset(ScreenP
|
||||
{
|
||||
pScreen = pScreen_;
|
||||
int i;
|
||||
- pointer retval;
|
||||
+ void * retval;
|
||||
|
||||
#if XORG >= 17
|
||||
#define dixLookupResource dixLookupResourceByType
|
||||
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc
|
||||
--- tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc.116 2014-04-28 16:55:02.524441969 +0200
|
||||
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/vncExtInit.cc 2014-04-28 16:55:02.592440192 +0200
|
||||
@@ -65,18 +65,18 @@ extern "C" {
|
||||
|
||||
extern void vncExtensionInit();
|
||||
static void vncResetProc(ExtensionEntry* extEntry);
|
||||
- static void vncBlockHandler(pointer data, OSTimePtr t, pointer readmask);
|
||||
- static void vncWakeupHandler(pointer data, int nfds, pointer readmask);
|
||||
+ static void vncBlockHandler(void * data, OSTimePtr t, void * readmask);
|
||||
+ static void vncWakeupHandler(void * data, int nfds, void * readmask);
|
||||
void vncWriteBlockHandler(fd_set *fds);
|
||||
void vncWriteWakeupHandler(int nfds, fd_set *fds);
|
||||
- static void vncClientStateChange(CallbackListPtr*, pointer, pointer);
|
||||
+ static void vncClientStateChange(CallbackListPtr*, void *, void *);
|
||||
static void SendSelectionChangeEvent(Atom selection);
|
||||
static int ProcVncExtDispatch(ClientPtr client);
|
||||
static int SProcVncExtDispatch(ClientPtr client);
|
||||
- static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data,
|
||||
- pointer args);
|
||||
+ static void vncSelectionCallback(CallbackListPtr *callbacks, void * data,
|
||||
+ void * args);
|
||||
|
||||
- extern char *display;
|
||||
+ extern const char *display;
|
||||
extern char *listenaddr;
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@ static void vncResetProc(ExtensionEntry*
|
||||
{
|
||||
}
|
||||
|
||||
-static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args)
|
||||
+static void vncSelectionCallback(CallbackListPtr *callbacks, void * data, void * args)
|
||||
{
|
||||
SelectionInfoRec *info = (SelectionInfoRec *) args;
|
||||
Selection *selection = info->selection;
|
||||
@@ -301,7 +301,7 @@ static void vncWriteWakeupHandlerFallbac
|
||||
// selections have changed, and if so, notify any interested X clients.
|
||||
//
|
||||
|
||||
-static void vncBlockHandler(pointer data, OSTimePtr timeout, pointer readmask)
|
||||
+static void vncBlockHandler(void * data, OSTimePtr timeout, void * readmask)
|
||||
{
|
||||
fd_set* fds = (fd_set*)readmask;
|
||||
|
||||
@@ -312,7 +312,7 @@ static void vncBlockHandler(pointer data
|
||||
desktop[scr]->blockHandler(fds, timeout);
|
||||
}
|
||||
|
||||
-static void vncWakeupHandler(pointer data, int nfds, pointer readmask)
|
||||
+static void vncWakeupHandler(void * data, int nfds, void * readmask)
|
||||
{
|
||||
fd_set* fds = (fd_set*)readmask;
|
||||
|
||||
@@ -402,7 +402,7 @@ static void vncWriteWakeupHandlerFallbac
|
||||
vncWriteWakeupHandler(ret, &fallbackFds);
|
||||
}
|
||||
|
||||
-static void vncClientStateChange(CallbackListPtr*, pointer, pointer p)
|
||||
+static void vncClientStateChange(CallbackListPtr*, void *, void * p)
|
||||
{
|
||||
ClientPtr client = ((NewClientInfoRec*)p)->client;
|
||||
if (client->clientState == ClientStateGone) {
|
||||
@@ -468,7 +468,7 @@ void vncClientCutText(const char* str, i
|
||||
|
||||
|
||||
static CARD32 queryConnectTimerCallback(OsTimerPtr timer,
|
||||
- CARD32 now, pointer arg)
|
||||
+ CARD32 now, void * arg)
|
||||
{
|
||||
if (queryConnectTimeout)
|
||||
queryConnectDesktop->approveConnection(queryConnectId, false, "The attempt to prompt the user to accept the connection failed");
|
||||
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc
|
||||
--- tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc.116 2013-05-22 14:57:16.000000000 +0200
|
||||
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/vncHooks.cc 2014-04-28 16:55:02.593440166 +0200
|
||||
@@ -91,8 +91,8 @@ typedef struct {
|
||||
} vncHooksScreenRec, *vncHooksScreenPtr;
|
||||
|
||||
typedef struct {
|
||||
- GCFuncs *wrappedFuncs;
|
||||
- GCOps *wrappedOps;
|
||||
+ const GCFuncs *wrappedFuncs;
|
||||
+ const GCOps *wrappedOps;
|
||||
} vncHooksGCRec, *vncHooksGCPtr;
|
||||
|
||||
#if XORG == 15
|
||||
@@ -141,11 +141,11 @@ static Bool vncHooksDisplayCursor(
|
||||
#endif
|
||||
ScreenPtr pScreen, CursorPtr cursor);
|
||||
#if XORG < 112
|
||||
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
|
||||
- pointer pReadmask);
|
||||
+static void vncHooksBlockHandler(int i, void * blockData, void * pTimeout,
|
||||
+ void * pReadmask);
|
||||
#else
|
||||
-static void vncHooksBlockHandler(ScreenPtr pScreen, pointer pTimeout,
|
||||
- pointer pReadmask);
|
||||
+static void vncHooksBlockHandler(ScreenPtr pScreen, void * pTimeout,
|
||||
+ void * pReadmask);
|
||||
#endif
|
||||
#ifdef RENDER
|
||||
static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask,
|
||||
@@ -174,7 +174,7 @@ static void vncHooksValidateGC(GCPtr pGC
|
||||
static void vncHooksChangeGC(GCPtr pGC, unsigned long mask);
|
||||
static void vncHooksCopyGC(GCPtr src, unsigned long mask, GCPtr dst);
|
||||
static void vncHooksDestroyGC(GCPtr pGC);
|
||||
-static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue,int nrects);
|
||||
+static void vncHooksChangeClip(GCPtr pGC, int type, void * pValue,int nrects);
|
||||
static void vncHooksDestroyClip(GCPtr pGC);
|
||||
static void vncHooksCopyClip(GCPtr dst, GCPtr src);
|
||||
|
||||
@@ -226,10 +226,10 @@ static void vncHooksImageText16(Drawable
|
||||
int count, unsigned short *chars);
|
||||
static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
|
||||
int y, unsigned int nglyph,
|
||||
- CharInfoPtr *ppci, pointer pglyphBase);
|
||||
+ CharInfoPtr *ppci, void * pglyphBase);
|
||||
static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
|
||||
int y, unsigned int nglyph,
|
||||
- CharInfoPtr *ppci, pointer pglyphBase);
|
||||
+ CharInfoPtr *ppci, void * pglyphBase);
|
||||
static void vncHooksPushPixels(GCPtr pGC, PixmapPtr pBitMap,
|
||||
DrawablePtr pDrawable, int w, int h, int x,
|
||||
int y);
|
||||
@@ -575,11 +575,11 @@ static Bool vncHooksDisplayCursor(
|
||||
// these are just drawing the cursor.
|
||||
|
||||
#if XORG < 112
|
||||
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
|
||||
- pointer pReadmask)
|
||||
+static void vncHooksBlockHandler(int i, void * blockData, void * pTimeout,
|
||||
+ void * pReadmask)
|
||||
#else
|
||||
-static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
|
||||
- pointer pReadmask)
|
||||
+static void vncHooksBlockHandler(ScreenPtr pScreen_, void * pTimeout,
|
||||
+ void * pReadmask)
|
||||
#endif
|
||||
{
|
||||
#if XORG < 112
|
||||
@@ -914,7 +914,7 @@ static void vncHooksDestroyGC(GCPtr pGC)
|
||||
GCFuncUnwrapper u(pGC);
|
||||
(*pGC->funcs->DestroyGC) (pGC);
|
||||
}
|
||||
-static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue, int nrects)
|
||||
+static void vncHooksChangeClip(GCPtr pGC, int type, void * pValue, int nrects)
|
||||
{
|
||||
GCFuncUnwrapper u(pGC);
|
||||
(*pGC->funcs->ChangeClip) (pGC, type, pValue, nrects);
|
||||
@@ -954,7 +954,7 @@ public:
|
||||
}
|
||||
GCPtr pGC;
|
||||
vncHooksGCPtr vncHooksGC;
|
||||
- GCFuncs* oldFuncs;
|
||||
+ const GCFuncs* oldFuncs;
|
||||
ScreenPtr pScreen;
|
||||
};
|
||||
|
||||
@@ -1793,7 +1793,7 @@ static void vncHooksImageText16(Drawable
|
||||
|
||||
static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
|
||||
int y, unsigned int nglyph,
|
||||
- CharInfoPtr *ppci, pointer pglyphBase)
|
||||
+ CharInfoPtr *ppci, void * pglyphBase)
|
||||
{
|
||||
GC_OP_UNWRAPPER(pDrawable, pGC, ImageGlyphBlt);
|
||||
|
||||
@@ -1819,7 +1819,7 @@ static void vncHooksImageGlyphBlt(Drawab
|
||||
|
||||
static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,
|
||||
int y, unsigned int nglyph,
|
||||
- CharInfoPtr *ppci, pointer pglyphBase)
|
||||
+ CharInfoPtr *ppci, void * pglyphBase)
|
||||
{
|
||||
GC_OP_UNWRAPPER(pDrawable, pGC, PolyGlyphBlt);
|
||||
|
||||
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc
|
||||
--- tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc.116 2013-03-14 18:52:53.000000000 +0100
|
||||
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/xf86vncModule.cc 2014-04-28 16:55:02.593440166 +0200
|
||||
@@ -81,11 +81,11 @@ static XF86ModuleVersionInfo vncVersRec
|
||||
|
||||
_X_EXPORT XF86ModuleData vncModuleData = { &vncVersRec, vncSetup, NULL };
|
||||
|
||||
-static pointer
|
||||
-vncSetup(pointer module, pointer opts, int *errmaj, int *errmin) {
|
||||
- LoadExtension(&vncExt, FALSE);
|
||||
+static void *
|
||||
+vncSetup(void * module, void * opts, int *errmaj, int *errmin) {
|
||||
+ LoadExtensionList(&vncExt, 1, FALSE);
|
||||
/* Need a non-NULL return value to indicate success */
|
||||
- return (pointer)1;
|
||||
+ return (void *)1;
|
||||
}
|
||||
|
||||
static void vncExtensionInitWithParams(INITARGS)
|
||||
diff -up tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc.116 tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc
|
||||
--- tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc.116 2014-03-19 13:11:09.000000000 +0100
|
||||
+++ tigervnc-1.3.1/unix/xserver/hw/vnc/xvnc.cc 2014-04-28 16:53:12.580314921 +0200
|
||||
@@ -103,7 +103,7 @@ extern "C" {
|
||||
"See http://www.tigervnc.org for information on TigerVNC.\n")
|
||||
|
||||
|
||||
-extern char *display;
|
||||
+extern const char *display;
|
||||
extern int monitorResolution;
|
||||
|
||||
#define VFB_DEFAULT_WIDTH 1024
|
||||
@@ -762,7 +762,7 @@ vfbUninstallColormap(ColormapPtr pmap)
|
||||
curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
|
||||
RT_COLORMAP);
|
||||
#else
|
||||
- dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap,
|
||||
+ dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap,
|
||||
RT_COLORMAP, serverClient, DixUnknownAccess);
|
||||
#endif
|
||||
(*pmap->pScreen->InstallColormap)(curpmap);
|
||||
@@ -1597,7 +1597,7 @@ vfbScreenInit(ScreenPtr pScreen, int arg
|
||||
} /* end vfbScreenInit */
|
||||
|
||||
|
||||
-static void vfbClientStateChange(CallbackListPtr*, pointer, pointer) {
|
||||
+static void vfbClientStateChange(CallbackListPtr*, void *, void *) {
|
||||
dispatchException &= ~DE_RESET;
|
||||
}
|
||||
|
||||
@@ -1625,7 +1625,7 @@ InitOutput(ScreenInfo *screenInfo, int a
|
||||
#if XORG >= 113
|
||||
#ifdef GLXEXT
|
||||
if (serverGeneration == 1)
|
||||
- LoadExtension(&glxExt, TRUE);
|
||||
+ LoadExtensionList(&glxExt, 1, TRUE);
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff -up tigervnc-1.3.0/vncviewer/Viewport.cxx.cursor tigervnc-1.3.0/vncviewer/Viewport.cxx
|
||||
--- tigervnc-1.3.0/vncviewer/Viewport.cxx.cursor 2013-12-17 13:28:23.170400013 +0000
|
||||
+++ tigervnc-1.3.0/vncviewer/Viewport.cxx 2013-12-17 13:29:46.095784064 +0000
|
||||
@@ -931,7 +931,7 @@ void Viewport::popupContextMenu()
|
||||
|
||||
// Back to our proper mouse pointer.
|
||||
#ifdef HAVE_FLTK_CURSOR
|
||||
- if (Fl::belowmouse() == this)
|
||||
+ if (Fl::belowmouse() == this && cursor)
|
||||
window()->cursor(cursor, cursorHotspot.x, cursorHotspot.y);
|
||||
#endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster 2013-07-12 09:30:50.551459439 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc 2013-07-12 09:38:31.037480528 +0100
|
||||
@@ -232,10 +232,7 @@ void InputDevice::PrepareInputDevices(vo
|
||||
diff -up tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc
|
||||
--- tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc.getmaster 2015-01-23 23:37:23.000000000 +0000
|
||||
+++ tigervnc-1.4.2/unix/xserver/hw/vnc/InputXKB.cc 2015-02-13 12:32:54.398502082 +0000
|
||||
@@ -208,10 +208,7 @@ void InputDevice::PrepareInputDevices(vo
|
||||
|
||||
unsigned InputDevice::getKeyboardState(void)
|
||||
{
|
||||
@ -13,7 +13,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
}
|
||||
|
||||
unsigned InputDevice::getLevelThreeMask(void)
|
||||
@@ -256,7 +253,7 @@ unsigned InputDevice::getLevelThreeMask(
|
||||
@@ -232,7 +229,7 @@ unsigned InputDevice::getLevelThreeMask(
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
|
||||
act = XkbKeyActionPtr(xkb, keycode, state);
|
||||
if (act == NULL)
|
||||
@@ -281,7 +278,7 @@ KeyCode InputDevice::pressShift(void)
|
||||
@@ -257,7 +254,7 @@ KeyCode InputDevice::pressShift(void)
|
||||
if (state & ShiftMask)
|
||||
return 0;
|
||||
|
||||
@ -31,7 +31,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
|
||||
XkbAction *act;
|
||||
unsigned char mask;
|
||||
@@ -318,7 +315,7 @@ std::list<KeyCode> InputDevice::releaseS
|
||||
@@ -294,7 +291,7 @@ std::list<KeyCode> InputDevice::releaseS
|
||||
if (!(state & ShiftMask))
|
||||
return keys;
|
||||
|
||||
@ -40,7 +40,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
xkb = master->key->xkbInfo->desc;
|
||||
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
|
||||
XkbAction *act;
|
||||
@@ -371,7 +368,7 @@ KeyCode InputDevice::pressLevelThree(voi
|
||||
@@ -347,7 +344,7 @@ KeyCode InputDevice::pressLevelThree(voi
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
|
||||
act = XkbKeyActionPtr(xkb, keycode, state);
|
||||
if (act == NULL)
|
||||
@@ -399,7 +396,7 @@ std::list<KeyCode> InputDevice::releaseL
|
||||
@@ -375,7 +372,7 @@ std::list<KeyCode> InputDevice::releaseL
|
||||
if (!(state & mask))
|
||||
return keys;
|
||||
|
||||
@ -58,7 +58,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
xkb = master->key->xkbInfo->desc;
|
||||
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
|
||||
XkbAction *act;
|
||||
@@ -440,7 +437,7 @@ KeyCode InputDevice::keysymToKeycode(Key
|
||||
@@ -416,7 +413,7 @@ KeyCode InputDevice::keysymToKeycode(Key
|
||||
if (new_state != NULL)
|
||||
*new_state = state;
|
||||
|
||||
@ -67,7 +67,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
|
||||
unsigned int state_out;
|
||||
KeySym dummy;
|
||||
@@ -497,7 +494,7 @@ bool InputDevice::isLockModifier(KeyCode
|
||||
@@ -473,7 +470,7 @@ bool InputDevice::isLockModifier(KeyCode
|
||||
XkbDescPtr xkb;
|
||||
XkbAction *act;
|
||||
|
||||
@ -76,7 +76,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
|
||||
act = XkbKeyActionPtr(xkb, keycode, state);
|
||||
if (act == NULL)
|
||||
@@ -535,7 +532,7 @@ bool InputDevice::isAffectedByNumLock(Ke
|
||||
@@ -511,7 +508,7 @@ bool InputDevice::isAffectedByNumLock(Ke
|
||||
if (numlock_keycode == 0)
|
||||
return false;
|
||||
|
||||
@ -85,7 +85,7 @@ diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0
|
||||
|
||||
act = XkbKeyActionPtr(xkb, numlock_keycode, state);
|
||||
if (act == NULL)
|
||||
@@ -569,7 +566,7 @@ KeyCode InputDevice::addKeysym(KeySym ke
|
||||
@@ -545,7 +542,7 @@ KeyCode InputDevice::addKeysym(KeySym ke
|
||||
KeySym *syms;
|
||||
KeySym upper, lower;
|
||||
|
||||
|
@ -1,383 +0,0 @@
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.inputreset 2013-07-01 13:41:24.000000000 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc 2014-07-14 13:08:01.482660946 +0100
|
||||
@@ -68,6 +68,9 @@ rfb::BoolParameter avoidShiftNumLock("Av
|
||||
|
||||
#define BUTTONS 7
|
||||
|
||||
+class InputDevice *vncInputDevice;
|
||||
+InputDevice InputDevice::singleton;
|
||||
+
|
||||
/* Event queue is shared between all devices. */
|
||||
#if XORG == 15
|
||||
static xEvent *eventq = NULL;
|
||||
@@ -116,11 +119,13 @@ static void enqueueEvents(DeviceIntPtr d
|
||||
}
|
||||
#endif /* XORG < 111 */
|
||||
|
||||
-InputDevice::InputDevice(rfb::VNCServerST *_server)
|
||||
- : server(_server), initialized(false), oldButtonMask(0)
|
||||
+InputDevice::InputDevice()
|
||||
+ : oldButtonMask(0)
|
||||
{
|
||||
int i;
|
||||
|
||||
+ vncInputDevice = this;
|
||||
+
|
||||
#if XORG < 111
|
||||
initEventq();
|
||||
#endif
|
||||
@@ -195,16 +200,12 @@ void InputDevice::PointerMove(const rfb:
|
||||
cursorPos = pos;
|
||||
}
|
||||
|
||||
-void InputDevice::PointerSync(void)
|
||||
+const rfb::Point &InputDevice::getPointerPos(void)
|
||||
{
|
||||
- if (cursorPos.equals(oldCursorPos))
|
||||
- return;
|
||||
-
|
||||
- oldCursorPos = cursorPos;
|
||||
- server->setCursorPos(cursorPos);
|
||||
+ return cursorPos;
|
||||
}
|
||||
|
||||
-static int pointerProc(DeviceIntPtr pDevice, int onoff)
|
||||
+int InputDevice::pointerProc(DeviceIntPtr pDevice, int onoff)
|
||||
{
|
||||
BYTE map[BUTTONS + 1];
|
||||
DevicePtr pDev = (DevicePtr)pDevice;
|
||||
@@ -229,6 +230,8 @@ static int pointerProc(DeviceIntPtr pDev
|
||||
btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
|
||||
btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
|
||||
btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
|
||||
+ btn_labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
|
||||
+ btn_labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
|
||||
|
||||
axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
|
||||
axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
|
||||
@@ -253,10 +256,9 @@ static int pointerProc(DeviceIntPtr pDev
|
||||
case DEVICE_OFF:
|
||||
pDev->on = FALSE;
|
||||
break;
|
||||
-#if 0
|
||||
case DEVICE_CLOSE:
|
||||
+ singleton.pointerDev = NULL;
|
||||
break;
|
||||
-#endif
|
||||
}
|
||||
|
||||
return Success;
|
||||
@@ -269,9 +271,7 @@ static void keyboardBell(int percent, De
|
||||
vncBell();
|
||||
}
|
||||
|
||||
-extern void GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap);
|
||||
-
|
||||
-static int keyboardProc(DeviceIntPtr pDevice, int onoff)
|
||||
+int InputDevice::keyboardProc(DeviceIntPtr pDevice, int onoff)
|
||||
{
|
||||
#if XORG < 17
|
||||
KeySymsRec keySyms;
|
||||
@@ -298,6 +298,9 @@ static int keyboardProc(DeviceIntPtr pDe
|
||||
case DEVICE_OFF:
|
||||
pDev->on = FALSE;
|
||||
break;
|
||||
+ case DEVICE_CLOSE:
|
||||
+ singleton.keyboardDev = NULL;
|
||||
+ break;
|
||||
}
|
||||
|
||||
return Success;
|
||||
@@ -305,11 +308,9 @@ static int keyboardProc(DeviceIntPtr pDe
|
||||
|
||||
void InputDevice::InitInputDevice(void)
|
||||
{
|
||||
- if (initialized)
|
||||
+ if ((pointerDev != NULL) || (keyboardDev != NULL))
|
||||
return;
|
||||
|
||||
- initialized = true;
|
||||
-
|
||||
#if XORG < 17
|
||||
pointerDev = AddInputDevice(
|
||||
#if XORG >= 16
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc.inputreset 2013-07-01 13:41:24.000000000 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputCore.cc 2014-07-14 13:08:01.483660952 +0100
|
||||
@@ -174,7 +174,7 @@ KeySym keyboardMap[MAP_LEN * KEYSYMS_PER
|
||||
XK_Menu, NoSymbol,
|
||||
};
|
||||
|
||||
-void GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap)
|
||||
+void InputDevice::GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap)
|
||||
{
|
||||
int i;
|
||||
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h.inputreset 2013-07-01 13:41:24.000000000 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/Input.h 2014-07-14 13:08:01.483660952 +0100
|
||||
@@ -29,20 +29,27 @@
|
||||
|
||||
#include <list>
|
||||
|
||||
-#include <rfb/VNCServerST.h>
|
||||
+#include <rdr/types.h>
|
||||
+#include <rfb/Rect.h>
|
||||
|
||||
extern "C" {
|
||||
#include "input.h"
|
||||
+/* The Xorg headers define macros that wreak havoc with STL */
|
||||
+#undef max
|
||||
};
|
||||
|
||||
#include "xorg-version.h"
|
||||
|
||||
-/* Represents input device (keyboard + pointer) */
|
||||
+/*
|
||||
+ * Represents input device (keyboard + pointer)
|
||||
+ *
|
||||
+ * Is a singleton as input devices are global in the X server so
|
||||
+ * we do not have one per desktop (i.e. per screen).
|
||||
+ */
|
||||
+extern class InputDevice *vncInputDevice;
|
||||
+
|
||||
class InputDevice {
|
||||
public:
|
||||
- /* Create new InputDevice instance */
|
||||
- InputDevice(rfb::VNCServerST *_server);
|
||||
-
|
||||
/*
|
||||
* Press or release buttons. Relationship between buttonMask and
|
||||
* buttons is specified in RFB protocol.
|
||||
@@ -52,27 +59,28 @@ public:
|
||||
/* Move pointer to target location (point coords are absolute). */
|
||||
void PointerMove(const rfb::Point &point);
|
||||
|
||||
- /*
|
||||
- * Send pointer position to clients. If not called then Move() calls
|
||||
- * won't be visible to VNC clients.
|
||||
- */
|
||||
- void PointerSync(void);
|
||||
+ /* Get current known location of the pointer */
|
||||
+ const rfb::Point &getPointerPos(void);
|
||||
|
||||
+ /* Press or release one or more keys to get the given symbol */
|
||||
void KeyboardPress(rdr::U32 keysym) { keyEvent(keysym, true); }
|
||||
void KeyboardRelease(rdr::U32 keysym) { keyEvent(keysym, false); }
|
||||
|
||||
/*
|
||||
- * Init input device. This cannot be done in the constructor
|
||||
- * because constructor is called during X server extensions
|
||||
- * initialization. Devices must be initialized after core
|
||||
- * pointer/keyboard initialization which is actually after extesions
|
||||
- * initialization. Check InitExtensions(), InitCoreDevices() and
|
||||
- * InitInput() calls in dix/main.c. Instead it is called from
|
||||
- * XserverDesktop at an appropriate time.
|
||||
+ * Init input device.
|
||||
+ * This has to be called after core pointer/keyboard
|
||||
+ * initialization which unfortunately is after extesions
|
||||
+ * initialization (which means we cannot call it in
|
||||
+ * vncExtensionInit(). Check InitExtensions(),
|
||||
+ * InitCoreDevices() and InitInput() calls in dix/main.c.
|
||||
+ * Instead we call it from XserverDesktop at an appropriate
|
||||
+ * time.
|
||||
*/
|
||||
void InitInputDevice(void);
|
||||
|
||||
private:
|
||||
+ InputDevice();
|
||||
+
|
||||
void keyEvent(rdr::U32 keysym, bool down);
|
||||
|
||||
/* Backend dependent functions below here */
|
||||
@@ -96,22 +104,28 @@ private:
|
||||
KeyCode addKeysym(KeySym keysym, unsigned state);
|
||||
|
||||
private:
|
||||
+ static int pointerProc(DeviceIntPtr pDevice, int onoff);
|
||||
+ static int keyboardProc(DeviceIntPtr pDevice, int onoff);
|
||||
+
|
||||
#if XORG >= 17
|
||||
static void vncXkbProcessDeviceEvent(int screenNum,
|
||||
InternalEvent *event,
|
||||
DeviceIntPtr dev);
|
||||
+#else
|
||||
+ static void GetInitKeyboardMap(KeySymsPtr keysyms, CARD8 *modmap);
|
||||
#endif
|
||||
|
||||
private:
|
||||
- rfb::VNCServerST *server;
|
||||
- bool initialized;
|
||||
DeviceIntPtr keyboardDev;
|
||||
DeviceIntPtr pointerDev;
|
||||
|
||||
int oldButtonMask;
|
||||
- rfb::Point cursorPos, oldCursorPos;
|
||||
+ rfb::Point cursorPos;
|
||||
|
||||
KeySym pressedKeys[256];
|
||||
+
|
||||
+private:
|
||||
+ static InputDevice singleton;
|
||||
};
|
||||
|
||||
#endif
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.inputreset 2014-07-14 13:07:53.145619157 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc 2014-07-14 13:08:01.484660958 +0100
|
||||
@@ -42,18 +42,6 @@ extern "C" {
|
||||
#undef class
|
||||
}
|
||||
|
||||
-#if XORG < 19
|
||||
-static int vncXkbScreenPrivateKeyIndex;
|
||||
-static DevPrivateKey vncXkbScreenPrivateKey = &vncXkbScreenPrivateKeyIndex;
|
||||
-#else
|
||||
-static DevPrivateKeyRec vncXkbPrivateKeyRec;
|
||||
-#define vncXkbScreenPrivateKey (&vncXkbPrivateKeyRec)
|
||||
-#endif
|
||||
-
|
||||
-#define vncXkbScreenPrivate(pScreen) \
|
||||
- (*(InputDevice**) dixLookupPrivate(&(pScreen)->devPrivates, \
|
||||
- vncXkbScreenPrivateKey))
|
||||
-
|
||||
#ifndef KEYBOARD_OR_FLOAT
|
||||
#define KEYBOARD_OR_FLOAT MASTER_KEYBOARD
|
||||
#endif
|
||||
@@ -209,18 +197,6 @@ static unsigned XkbKeyEffectiveGroup(Xkb
|
||||
|
||||
void InputDevice::PrepareInputDevices(void)
|
||||
{
|
||||
-#if XORG < 19
|
||||
- if (!dixRequestPrivate(vncXkbScreenPrivateKey, sizeof(InputDevice*)))
|
||||
- FatalError("Failed to register TigerVNC XKB screen key\n");
|
||||
-#else
|
||||
- if (!dixRegisterPrivateKey(vncXkbScreenPrivateKey, PRIVATE_SCREEN,
|
||||
- sizeof(InputDevice*)))
|
||||
- FatalError("Failed to register TigerVNC XKB screen key\n");
|
||||
-#endif
|
||||
-
|
||||
- for (int scr = 0; scr < screenInfo.numScreens; scr++)
|
||||
- vncXkbScreenPrivate(screenInfo.screens[scr]) = this;
|
||||
-
|
||||
/*
|
||||
* Not ideal since these callbacks do not stack, but it's the only
|
||||
* decent way we can reliably catch events for both the slave and
|
||||
@@ -633,10 +609,9 @@ void InputDevice::vncXkbProcessDeviceEve
|
||||
InternalEvent *event,
|
||||
DeviceIntPtr dev)
|
||||
{
|
||||
- InputDevice *self = vncXkbScreenPrivate(screenInfo.screens[screenNum]);
|
||||
unsigned int backupctrls;
|
||||
|
||||
- if (event->device_event.sourceid == self->keyboardDev->id) {
|
||||
+ if (event->device_event.sourceid == singleton.keyboardDev->id) {
|
||||
XkbControlsPtr ctrls;
|
||||
|
||||
/*
|
||||
@@ -658,7 +633,7 @@ void InputDevice::vncXkbProcessDeviceEve
|
||||
|
||||
dev->c_public.processInputProc(event, dev);
|
||||
|
||||
- if (event->device_event.sourceid == self->keyboardDev->id) {
|
||||
+ if (event->device_event.sourceid == singleton.keyboardDev->id) {
|
||||
XkbControlsPtr ctrls;
|
||||
|
||||
ctrls = dev->key->xkbInfo->desc->ctrls;
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc.inputreset 2013-07-01 13:41:24.000000000 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/xf86vncModule.cc 2014-07-14 13:08:01.487660972 +0100
|
||||
@@ -112,9 +112,9 @@ static void vncExtensionInitWithParams(I
|
||||
i.param->setParam(val);
|
||||
}
|
||||
}
|
||||
-
|
||||
- vncExtensionInit();
|
||||
}
|
||||
+
|
||||
+ vncExtensionInit();
|
||||
}
|
||||
}
|
||||
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc.inputreset 2014-07-14 13:07:53.140619132 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.cc 2014-07-14 13:08:01.486660967 +0100
|
||||
@@ -157,15 +157,12 @@ XserverDesktop::XserverDesktop(ScreenPtr
|
||||
|
||||
if (httpListener)
|
||||
httpServer = new FileHTTPServer(this);
|
||||
-
|
||||
- inputDevice = new InputDevice(server);
|
||||
}
|
||||
|
||||
XserverDesktop::~XserverDesktop()
|
||||
{
|
||||
if (!directFbptr)
|
||||
delete [] data;
|
||||
- delete inputDevice;
|
||||
delete httpServer;
|
||||
delete server;
|
||||
}
|
||||
@@ -583,7 +580,7 @@ void XserverDesktop::blockHandler(fd_set
|
||||
// so we abuse the fact that this routine will be called first thing
|
||||
// once the dix is done initialising.
|
||||
// [1] Technically Xvnc has InitInput(), but libvnc.so has nothing.
|
||||
- inputDevice->InitInputDevice();
|
||||
+ vncInputDevice->InitInputDevice();
|
||||
|
||||
try {
|
||||
int nextTimeout;
|
||||
@@ -691,7 +688,11 @@ void XserverDesktop::wakeupHandler(fd_se
|
||||
}
|
||||
}
|
||||
|
||||
- inputDevice->PointerSync();
|
||||
+ // We are responsible for propagating mouse movement between clients
|
||||
+ if (!oldCursorPos.equals(vncInputDevice->getPointerPos())) {
|
||||
+ oldCursorPos = vncInputDevice->getPointerPos();
|
||||
+ server->setCursorPos(oldCursorPos);
|
||||
+ }
|
||||
}
|
||||
|
||||
// Then let the timers do some processing. Rescheduling is done in
|
||||
@@ -818,8 +819,8 @@ void XserverDesktop::approveConnection(v
|
||||
|
||||
void XserverDesktop::pointerEvent(const Point& pos, int buttonMask)
|
||||
{
|
||||
- inputDevice->PointerMove(pos);
|
||||
- inputDevice->PointerButtonAction(buttonMask);
|
||||
+ vncInputDevice->PointerMove(pos);
|
||||
+ vncInputDevice->PointerButtonAction(buttonMask);
|
||||
}
|
||||
|
||||
void XserverDesktop::clientCutText(const char* str, int len)
|
||||
@@ -1136,7 +1137,7 @@ void XserverDesktop::lookup(int index, i
|
||||
void XserverDesktop::keyEvent(rdr::U32 keysym, bool down)
|
||||
{
|
||||
if (down)
|
||||
- inputDevice->KeyboardPress(keysym);
|
||||
+ vncInputDevice->KeyboardPress(keysym);
|
||||
else
|
||||
- inputDevice->KeyboardRelease(keysym);
|
||||
+ vncInputDevice->KeyboardRelease(keysym);
|
||||
}
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h.inputreset tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h.inputreset 2013-07-01 13:41:24.000000000 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/XserverDesktop.h 2014-07-14 13:08:01.486660967 +0100
|
||||
@@ -133,7 +133,6 @@ private:
|
||||
#endif
|
||||
|
||||
ScreenPtr pScreen;
|
||||
- InputDevice *inputDevice;
|
||||
rfb::VNCServerST* server;
|
||||
rfb::HTTPServer* httpServer;
|
||||
network::TcpListener* listener;
|
||||
@@ -153,5 +152,7 @@ private:
|
||||
typedef std::map<RROutputPtr, rdr::U32> OutputIdMap;
|
||||
OutputIdMap outputIdMap;
|
||||
#endif
|
||||
+
|
||||
+ rfb::Point oldCursorPos;
|
||||
};
|
||||
#endif
|
@ -1,6 +1,6 @@
|
||||
diff -up tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
|
||||
--- tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir 2012-08-22 15:52:01.876216608 +0200
|
||||
+++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am 2012-08-22 15:52:45.973143684 +0200
|
||||
diff -up tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am.libvnc-os tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am
|
||||
--- tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am.libvnc-os 2015-02-13 13:22:19.519322622 +0000
|
||||
+++ tigervnc-1.4.2/unix/xserver/hw/vnc/Makefile.am 2015-02-13 13:22:19.521322636 +0000
|
||||
@@ -5,6 +5,7 @@ RFB_LIB=$(LIB_DIR)/rfb/librfb.la
|
||||
RDR_LIB=$(LIB_DIR)/rdr/librdr.la
|
||||
NETWORK_LIB=$(LIB_DIR)/network/libnetwork.la
|
||||
@ -8,8 +8,8 @@ diff -up tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am.gethomedir tigervnc-1.2.
|
||||
+OS_LIB=$(LIB_DIR)/os/libos.la
|
||||
COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
|
||||
|
||||
noinst_LTLIBRARIES = libvnccommon.la
|
||||
@@ -55,7 +56,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
|
||||
# Hack to get the C headers to work when included from C++ code
|
||||
@@ -58,7 +59,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I
|
||||
|
||||
libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now
|
||||
|
@ -1,20 +1,6 @@
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/unix/vncserver.man.manpages tigervnc-1.2.80-20130314svn5065/unix/vncserver.man
|
||||
--- tigervnc-1.2.80-20130314svn5065/unix/vncserver.man.manpages 2013-07-03 12:44:03.820392690 +0100
|
||||
+++ tigervnc-1.2.80-20130314svn5065/unix/vncserver.man 2013-07-03 12:44:44.222587028 +0100
|
||||
@@ -92,6 +92,10 @@ argument. Thus, you can invoke "vncserv
|
||||
end of your xstartup file after a particular application exits.
|
||||
|
||||
.TP
|
||||
+.B \-list
|
||||
+Lists running VNC servers.
|
||||
+
|
||||
+.TP
|
||||
.B \-fp \fIfont-path\fP
|
||||
If the vncserver script detects that the X Font Server (XFS) is running, it
|
||||
will attempt to start Xvnc and configure Xvnc to use XFS for font handling.
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/unix/vncserver.manpages tigervnc-1.2.80-20130314svn5065/unix/vncserver
|
||||
--- tigervnc-1.2.80-20130314svn5065/unix/vncserver.manpages 2013-07-03 12:39:08.754980784 +0100
|
||||
+++ tigervnc-1.2.80-20130314svn5065/unix/vncserver 2013-07-03 12:43:57.932364387 +0100
|
||||
diff -up tigervnc-1.4.2/unix/vncserver.manpages tigervnc-1.4.2/unix/vncserver
|
||||
--- tigervnc-1.4.2/unix/vncserver.manpages 2015-02-12 19:39:32.253788841 +0000
|
||||
+++ tigervnc-1.4.2/unix/vncserver 2015-02-12 19:39:32.326789294 +0000
|
||||
@@ -551,6 +551,7 @@ sub Usage
|
||||
" [-geometry <width>x<height>]\n".
|
||||
" [-pixelformat rgbNNN|bgrNNN]\n".
|
||||
@ -23,105 +9,10 @@ diff -up tigervnc-1.2.80-20130314svn5065/unix/vncserver.manpages tigervnc-1.2.80
|
||||
" [-fg]\n".
|
||||
" [-autokill]\n".
|
||||
" <Xvnc-options>...\n\n".
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.cxx.manpages tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.cxx
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man.manpages tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man
|
||||
--- tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man.manpages 2013-07-03 12:46:17.814038117 +0100
|
||||
+++ tigervnc-1.2.80-20130314svn5065/unix/x0vncserver/x0vncserver.man 2013-07-03 12:58:32.814621597 +0100
|
||||
@@ -68,7 +68,13 @@ to accept connections from any IP addres
|
||||
Specify which security scheme to use for incoming connections. Valid values
|
||||
are \fBNone\fP and \fBVncAuth\fP. Default is \fBVncAuth\fP.
|
||||
.TP
|
||||
-.B PasswordFile
|
||||
+.B pam_server
|
||||
+Service name for pam password validation (default is "vnc").
|
||||
+.TP
|
||||
+.B PlainUsers
|
||||
+Users permission to access via Plain security type.
|
||||
+.TP
|
||||
+.B PasswordFile, rfbauth
|
||||
Password file for VNC authentication. There is no default, you should
|
||||
specify the password file explicitly. Password file should be created with
|
||||
the \fBvncpasswd\fP(1) utility.
|
||||
@@ -113,6 +119,16 @@ Accept key press and release events from
|
||||
.B AcceptPointerEvents
|
||||
Accept pointer events from clients. Default is on.
|
||||
.TP
|
||||
+.B AcceptCutText
|
||||
+Accept clipboard updates from clients. Default is on.
|
||||
+.TP
|
||||
+.B MaxCutText
|
||||
+Maximum permitted length of an incoming clipboard update (default is
|
||||
+262144).
|
||||
+.TP
|
||||
+.B SendCutText
|
||||
+Send clipboard changes to clients. Default is on.
|
||||
+.TP
|
||||
.B RemapKeys
|
||||
Comma-separated list of incoming keysyms to remap. Mappings are expressed as
|
||||
two hex values, prefixed by \fB0x\fP, and separated by \fB->\fP (`dash' and
|
||||
@@ -154,23 +170,6 @@ clients may choose video selection thems
|
||||
\fBVideoArea\fP parameter will take effect. If the argument is empty, no
|
||||
video area is set (this is the default).
|
||||
.TP
|
||||
-.B VideoPriority
|
||||
-Specify the priority of sending video updates. \fBx0vncserver\fP can be
|
||||
-instructed to treat certain rectangular part of the screen as a video area
|
||||
-and handle it in a special way for improved performance (see documentation on
|
||||
-the \fBVideoArea\fP parameter). \fBVideoPriority\fP value controls how often
|
||||
-video area will be sent to clients as compared to the rest of the screen.
|
||||
-The priority must be an integer between 0 and 8, and the default value is 2.
|
||||
-
|
||||
-\fBVideoPriority\fP set to 1 gives the same priority both to video and to
|
||||
-other pixels. Higher values give more priority to video. For example, the
|
||||
-value 5 specifies that the rate of sending video will be five times higher
|
||||
-than the rate of updating the rest of the screen. If \fBVideoPriority\fP is
|
||||
-set to 0, it gives equal priority to video and other updates (just like the
|
||||
-value 1) and also disables special encoding for video data. In other words,
|
||||
-\fBVideoPriority\fP video area will be sent as a part of other screen
|
||||
-contents.
|
||||
-.TP
|
||||
.B CompareFB
|
||||
Perform pixel comparison on framebuffer to reduce unnecessary updates.
|
||||
Default is on.
|
||||
@@ -185,15 +184,6 @@ This enables system-specific access to c
|
||||
screen (the default X visual often provides 256 colors). Also, in overlay
|
||||
mode, \fBx0vncserver\fP can show correct mouse cursor. Default is on.
|
||||
.TP
|
||||
-.B UseHardwareJPEG
|
||||
-Use hardware-accelerated JPEG compressor for video if available.
|
||||
-\fBx0vncserver\fP can be instructed to treat certain rectangular part of the
|
||||
-screen as a video area and handle it in a special way for improved
|
||||
-performance. If the client supports Tight encoding and JPEG compression,
|
||||
-such video areas will be sent as JPEG-encoded rectangles. And if this option
|
||||
-is on, compression will be hardware-accelerated (currently, supported only in
|
||||
-SGI/IRIX equipped with appropriate hardware). Default is on.
|
||||
-.TP
|
||||
.B ZlibLevel
|
||||
Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
|
||||
Acceptable values are between 0 and 9. Default is to use the standard
|
||||
@@ -222,6 +212,18 @@ Terminate after \fIN\fP seconds of user
|
||||
.B ClientWaitTimeMillis
|
||||
The number of milliseconds to wait for a client which is no longer
|
||||
responding. Default is 20000.
|
||||
+.TP
|
||||
+.B DeferUpdate
|
||||
+Time in milliseconds to defer updates (default is 1).
|
||||
+.TP
|
||||
+.B AlwaysSetDeferUpdateTimer
|
||||
+Always reset the defer update timer on every change.
|
||||
+.TP
|
||||
+.B x509key
|
||||
+Path to key of the x509 certificate in PEM format.
|
||||
+.TP
|
||||
+.B 509cert
|
||||
+Path to x509 certificate in PEM format.
|
||||
.SH SEE ALSO
|
||||
.BR Xvnc (1),
|
||||
.BR vncpasswd (1),
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx.manpages tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx
|
||||
--- tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx.manpages 2013-07-03 12:00:58.005856116 +0100
|
||||
+++ tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx 2013-07-03 12:04:26.083023050 +0100
|
||||
@@ -261,6 +261,11 @@ static void usage(const char *programNam
|
||||
diff -up tigervnc-1.4.2/vncviewer/vncviewer.cxx.manpages tigervnc-1.4.2/vncviewer/vncviewer.cxx
|
||||
--- tigervnc-1.4.2/vncviewer/vncviewer.cxx.manpages 2015-01-23 23:37:23.000000000 +0000
|
||||
+++ tigervnc-1.4.2/vncviewer/vncviewer.cxx 2015-02-12 19:39:32.327789300 +0000
|
||||
@@ -265,6 +265,11 @@ static void usage(const char *programNam
|
||||
" %s [parameters] -listen [port] [parameters]\n",
|
||||
programName, programName);
|
||||
fprintf(stderr,"\n"
|
||||
@ -133,104 +24,28 @@ diff -up tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.cxx.manpages tigerv
|
||||
"Parameters can be turned on with -<param> or off with -<param>=0\n"
|
||||
"Parameters which take a value can be specified as "
|
||||
"-<param> <value>\n"
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man.manpages tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man
|
||||
--- tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man.manpages 2013-07-03 11:40:48.905078300 +0100
|
||||
+++ tigervnc-1.2.80-20130314svn5065/vncviewer/vncviewer.man 2013-07-03 12:00:13.116604372 +0100
|
||||
@@ -113,12 +113,53 @@ Xvnc supports reverse connections with a
|
||||
.B vncconfig.
|
||||
|
||||
diff -up tigervnc-1.4.2/vncviewer/vncviewer.man.manpages tigervnc-1.4.2/vncviewer/vncviewer.man
|
||||
--- tigervnc-1.4.2/vncviewer/vncviewer.man.manpages 2015-02-12 19:39:32.327789300 +0000
|
||||
+++ tigervnc-1.4.2/vncviewer/vncviewer.man 2015-02-13 09:54:55.042903357 +0000
|
||||
@@ -219,6 +219,10 @@ This option specifies the preferred enco
|
||||
Disable lossy JPEG compression in Tight encoding. Default is off.
|
||||
.
|
||||
.TP
|
||||
-.B \-passwd \fIpassword-file\fP
|
||||
+.B \-passwd \fIpassword-file\fP, \-PasswordFile \fIpassword-file\fP
|
||||
If you are on a filesystem which gives you access to the password file used by
|
||||
the server, you can specify it here to avoid typing it in. It will usually be
|
||||
"~/.vnc/passwd".
|
||||
|
||||
.TP
|
||||
+.B \-DotWhenNoCursor
|
||||
+Show the dot cursor when the server sends an invisible cursor.
|
||||
+
|
||||
+.TP
|
||||
+.B \-PointerEventInterval
|
||||
+Time in milliseconds to rate-limit successive pointer events.
|
||||
+
|
||||
+.TP
|
||||
+.B \-ImprovedHextile
|
||||
+Try harder to compress data (default).
|
||||
+
|
||||
+.
|
||||
+.TP
|
||||
+.B \-QualityLevel \fIlevel\fP
|
||||
+JPEG quality level (default is 8).
|
||||
+
|
||||
+.TP
|
||||
+.B \-NoJPEG
|
||||
+Disable lossy JPEG compression in Tight encoding.
|
||||
+
|
||||
+.TP
|
||||
+.B CompressLevel \fIlevel\fP
|
||||
+Use specified compression level (default is 2).
|
||||
+
|
||||
+.TP
|
||||
+.B CustomCompressLevel \fIlevel\fP
|
||||
+Use custom compression level. Default is CompressLevel is specified.
|
||||
+
|
||||
+.TP
|
||||
+.B \-SendPrimary
|
||||
+Send the primary selection and cut buffer to the server as well as the
|
||||
+clipboard selection (default).
|
||||
+
|
||||
+.TP
|
||||
+.B \-SendClipboard
|
||||
+Send clipboard changes to the server (default).
|
||||
+
|
||||
+.TP
|
||||
+.B \-AcceptClipboard
|
||||
+Accept clipboard changes from the server (default).
|
||||
+
|
||||
+.TP
|
||||
.B \-Shared
|
||||
When you make a connection to a VNC server, all other existing connections are
|
||||
normally closed. This option requests that they be left open, allowing you to
|
||||
@@ -140,6 +181,19 @@ Maximize viewer window.
|
||||
Start in full-screen mode.
|
||||
|
||||
.TP
|
||||
+.B \-FullScreenAllMonitors
|
||||
+Enable full screen over all monitors (default).
|
||||
+
|
||||
+.TP
|
||||
+.B \-FullscreenSystemKeys
|
||||
+Pass special keys directly to the server in full-screen mode.
|
||||
+
|
||||
+.TP
|
||||
+.B \-RemoteResize
|
||||
+Dynamically resize the remote desktop size as the size of the local
|
||||
+client window changes (default).
|
||||
+
|
||||
+.TP
|
||||
.B \-DesktopSize \fIwidth\fPx\fIheight\fP
|
||||
Instead of keeping the existing remote screen size, the client will attempt to
|
||||
switch to the specified since when connecting. If the server does not support
|
||||
@@ -214,6 +268,22 @@ command is executed with the environment
|
||||
.B \-QualityLevel \fIlevel\fP
|
||||
JPEG quality level. 0 = Low, 9 = High. May be adjusted automatically if
|
||||
\fB-AutoSelect\fP is turned on. Default is 8.
|
||||
@@ -271,6 +275,10 @@ command is executed with the environment
|
||||
\fIR\fR, and \fIG\fR taken the values of the local port number, the remote
|
||||
host, the port number on the remote host, and the gateway machine
|
||||
respectively.
|
||||
|
||||
+.
|
||||
+.TP
|
||||
+\fB\-ZlibLevel\fR \fIlevel\fR
|
||||
+.B \-ZlibLevel
|
||||
+Zlib compression level.
|
||||
+
|
||||
+.TP
|
||||
+.B \-x509crl \fIfile\fP
|
||||
+X509 CRL file
|
||||
+
|
||||
+.TP
|
||||
+.B \-x509ca \fIfile\fP
|
||||
+X509 CA certificate
|
||||
+
|
||||
+.TP
|
||||
+.B \-SecurityTypes \fItypes\fP
|
||||
+Specify which security scheme to use.
|
||||
+
|
||||
.SH SEE ALSO
|
||||
.BR Xvnc (1),
|
||||
.BR vncpasswd (1),
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
|
@ -1,25 +0,0 @@
|
||||
diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.pointersync tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc
|
||||
--- tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc.pointersync 2014-07-14 16:27:49.412251632 +0100
|
||||
+++ tigervnc-1.3.0/unix/xserver/hw/vnc/Input.cc 2014-07-14 16:29:06.968643301 +0100
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Copyright (C) 2009 TightVNC Team
|
||||
- * Copyright (C) 2009 Red Hat, Inc.
|
||||
+ * Copyright (C) 2009, 2014 Red Hat, Inc.
|
||||
* Copyright 2013 Pierre Ossman for Cendio AB
|
||||
*
|
||||
* This is free software; you can redistribute it and/or modify
|
||||
@@ -202,6 +202,14 @@ void InputDevice::PointerMove(const rfb:
|
||||
|
||||
const rfb::Point &InputDevice::getPointerPos(void)
|
||||
{
|
||||
+ if (pointerDev != NULL) {
|
||||
+ int x, y;
|
||||
+
|
||||
+ GetSpritePosition (pointerDev, &x, &y);
|
||||
+ cursorPos.x = x;
|
||||
+ cursorPos.y = y;
|
||||
+ }
|
||||
+
|
||||
return cursorPos;
|
||||
}
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff -up tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc.jx tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc
|
||||
--- tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc.jx 2012-08-27 09:02:47.000000000 -0400
|
||||
+++ tigervnc-1.2.80-20130314svn5065/unix/xserver/hw/vnc/XserverDesktop.cc 2013-06-17 09:42:14.310725996 -0400
|
||||
@@ -479,6 +479,9 @@ void XserverDesktop::setCursor(CursorPtr
|
||||
}
|
||||
} else {
|
||||
#endif
|
||||
+ if (!cmap)
|
||||
+ return;
|
||||
+
|
||||
xColorItem fg, bg;
|
||||
fg.red = cursor->foreRed;
|
||||
fg.green = cursor->foreGreen;
|
@ -1,137 +0,0 @@
|
||||
diff -up xorg-server-1.16.0/configure.ac.vnc xorg-server-1.16.0/configure.ac
|
||||
--- xorg-server-1.16.0/configure.ac.vnc 2014-07-17 08:00:51.000000000 +0100
|
||||
+++ xorg-server-1.16.0/configure.ac 2014-09-03 10:21:49.506109235 +0100
|
||||
@@ -74,6 +74,7 @@ dnl forcing an entire recompile.x
|
||||
AC_CONFIG_HEADERS(include/version-config.h)
|
||||
|
||||
AM_PROG_AS
|
||||
+AC_PROG_CXX
|
||||
AC_PROG_LN_S
|
||||
LT_PREREQ([2.2])
|
||||
LT_INIT([disable-static win32-dll])
|
||||
@@ -1795,6 +1796,10 @@ if test "x$XVFB" = xyes; then
|
||||
AC_SUBST([XVFB_SYS_LIBS])
|
||||
fi
|
||||
|
||||
+dnl Xvnc DDX
|
||||
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"])
|
||||
+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
|
||||
|
||||
@@ -1830,6 +1835,8 @@ if test "x$XORG" = xauto; then
|
||||
fi
|
||||
AC_MSG_RESULT([$XORG])
|
||||
|
||||
+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'
|
||||
@@ -2051,7 +2058,6 @@ if test "x$XORG" = xyes; then
|
||||
AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
|
||||
AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
|
||||
AC_DEFINE(XFree86Server, 1, [Building 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])
|
||||
@@ -2589,6 +2595,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 xorg-server-1.16.0/hw/Makefile.am.vnc xorg-server-1.16.0/hw/Makefile.am
|
||||
--- xorg-server-1.16.0/hw/Makefile.am.vnc 2014-04-16 21:24:00.000000000 +0100
|
||||
+++ xorg-server-1.16.0/hw/Makefile.am 2014-09-03 10:21:49.507109234 +0100
|
||||
@@ -38,7 +38,8 @@ SUBDIRS = \
|
||||
$(DMX_SUBDIRS) \
|
||||
$(KDRIVE_SUBDIRS) \
|
||||
$(XQUARTZ_SUBDIRS) \
|
||||
- $(XWAYLAND_SUBDIRS)
|
||||
+ $(XWAYLAND_SUBDIRS) \
|
||||
+ vnc
|
||||
|
||||
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland
|
||||
|
||||
diff -up xorg-server-1.16.0/mi/miinitext.c.vnc xorg-server-1.16.0/mi/miinitext.c
|
||||
--- xorg-server-1.16.0/mi/miinitext.c.vnc 2014-04-16 21:24:00.000000000 +0100
|
||||
+++ xorg-server-1.16.0/mi/miinitext.c 2014-09-03 10:21:49.508109234 +0100
|
||||
@@ -111,6 +111,10 @@ SOFTWARE.
|
||||
#include "micmap.h"
|
||||
#include "globals.h"
|
||||
|
||||
+#ifdef TIGERVNC
|
||||
+extern void vncExtensionInit(INITARGS);
|
||||
+#endif
|
||||
+
|
||||
/* The following is only a small first step towards run-time
|
||||
* configurable extensions.
|
||||
*/
|
||||
@@ -235,6 +239,9 @@ EnableDisableExtensionError(const char *
|
||||
|
||||
/* List of built-in (statically linked) extensions */
|
||||
static const ExtensionModule staticExtensions[] = {
|
||||
+#ifdef TIGERVNC
|
||||
+ {vncExtensionInit, "VNC-EXTENSION", NULL},
|
||||
+#endif
|
||||
{GEExtensionInit, "Generic Event Extension", &noGEExtension},
|
||||
{ShapeExtensionInit, "SHAPE", NULL},
|
||||
#ifdef MITSHM
|
||||
diff -up xorg-server-1.16.0/os/WaitFor.c.vnc xorg-server-1.16.0/os/WaitFor.c
|
||||
--- xorg-server-1.16.0/os/WaitFor.c.vnc 2014-02-05 03:08:57.000000000 +0000
|
||||
+++ xorg-server-1.16.0/os/WaitFor.c 2014-09-03 10:21:49.508109234 +0100
|
||||
@@ -125,6 +125,9 @@ static void DoTimer(OsTimerPtr timer, CA
|
||||
static void CheckAllTimers(void);
|
||||
static OsTimerPtr timers = NULL;
|
||||
|
||||
+extern void vncWriteBlockHandler(fd_set *fds);
|
||||
+extern void vncWriteWakeupHandler(int nfds, fd_set *fds);
|
||||
+
|
||||
/*****************
|
||||
* WaitForSomething:
|
||||
* Make the server suspend until there is
|
||||
@@ -150,6 +153,7 @@ WaitForSomething(int *pClientsReady)
|
||||
INT32 timeout = 0;
|
||||
fd_set clientsReadable;
|
||||
fd_set clientsWritable;
|
||||
+ fd_set socketsWritable;
|
||||
int curclient;
|
||||
int selecterr;
|
||||
static int nready;
|
||||
@@ -212,6 +216,9 @@ WaitForSomething(int *pClientsReady)
|
||||
XFD_COPYSET(&AllSockets, &LastSelectMask);
|
||||
}
|
||||
|
||||
+ FD_ZERO(&socketsWritable);
|
||||
+ vncWriteBlockHandler(&socketsWritable);
|
||||
+
|
||||
BlockHandler((void *) &wt, (void *) &LastSelectMask);
|
||||
if (NewOutputPending)
|
||||
FlushAllOutput();
|
||||
@@ -223,10 +223,20 @@ WaitForSomething(int *pClientsReady)
|
||||
i = Select(MaxClients, &LastSelectMask, &clientsWritable, NULL, wt);
|
||||
}
|
||||
else {
|
||||
- i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
|
||||
+ if (AnyClientsWriteBlocked)
|
||||
+ XFD_ORSET(&socketsWritable, &ClientsWriteBlocked, &socketsWritable);
|
||||
+
|
||||
+ if (XFD_ANYSET(&socketsWritable)) {
|
||||
+ i = Select(MaxClients, &LastSelectMask, &socketsWritable, NULL, wt);
|
||||
+ if (AnyClientsWriteBlocked)
|
||||
+ XFD_ANDSET(&clientsWritable, &socketsWritable, &ClientsWriteBlocked);
|
||||
+ } else {
|
||||
+ i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
|
||||
+ }
|
||||
}
|
||||
selecterr = GetErrno();
|
||||
WakeupHandler(i, (void *) &LastSelectMask);
|
||||
+ vncWriteWakeupHandler(i, &socketsWritable);
|
||||
if (i <= 0) { /* An error or timeout occurred */
|
||||
if (dispatchException)
|
||||
return 0;
|
@ -1,69 +0,0 @@
|
||||
diff -up tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx.zrle-crash tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx
|
||||
--- tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx.zrle-crash 2013-07-01 13:41:59.000000000 +0100
|
||||
+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx 2013-12-12 17:30:48.510007365 +0000
|
||||
@@ -55,16 +55,19 @@ Encoder* ZRLEEncoder::create(SMsgWriter*
|
||||
}
|
||||
|
||||
ZRLEEncoder::ZRLEEncoder(SMsgWriter* writer_)
|
||||
- : writer(writer_), zos(0,0,zlibLevel)
|
||||
+ : writer(writer_)
|
||||
{
|
||||
if (sharedMos)
|
||||
mos = sharedMos;
|
||||
else
|
||||
mos = new rdr::MemOutStream(129*1024);
|
||||
+
|
||||
+ zos = new rdr::ZlibOutStream(0, 0, zlibLevel);
|
||||
}
|
||||
|
||||
ZRLEEncoder::~ZRLEEncoder()
|
||||
{
|
||||
+ delete zos;
|
||||
if (!sharedMos)
|
||||
delete mos;
|
||||
}
|
||||
@@ -78,10 +81,10 @@ bool ZRLEEncoder::writeRect(const Rect&
|
||||
|
||||
switch (writer->bpp()) {
|
||||
case 8:
|
||||
- wroteAll = zrleEncode8(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode8(r, mos, zos, imageBuf, maxLen, actual, ig);
|
||||
break;
|
||||
case 16:
|
||||
- wroteAll = zrleEncode16(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode16(r, mos, zos, imageBuf, maxLen, actual, ig);
|
||||
break;
|
||||
case 32:
|
||||
{
|
||||
@@ -94,16 +97,16 @@ bool ZRLEEncoder::writeRect(const Rect&
|
||||
if ((fitsInLS3Bytes && pf.isLittleEndian()) ||
|
||||
(fitsInMS3Bytes && pf.isBigEndian()))
|
||||
{
|
||||
- wroteAll = zrleEncode24A(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode24A(r, mos, zos, imageBuf, maxLen, actual, ig);
|
||||
}
|
||||
else if ((fitsInLS3Bytes && pf.isBigEndian()) ||
|
||||
(fitsInMS3Bytes && pf.isLittleEndian()))
|
||||
{
|
||||
- wroteAll = zrleEncode24B(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode24B(r, mos, zos, imageBuf, maxLen, actual, ig);
|
||||
}
|
||||
else
|
||||
{
|
||||
- wroteAll = zrleEncode32(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode32(r, mos, zos, imageBuf, maxLen, actual, ig);
|
||||
}
|
||||
break;
|
||||
}
|
||||
diff -up tigervnc-1.3.0/common/rfb/ZRLEEncoder.h.zrle-crash tigervnc-1.3.0/common/rfb/ZRLEEncoder.h
|
||||
--- tigervnc-1.3.0/common/rfb/ZRLEEncoder.h.zrle-crash 2013-07-01 13:42:01.000000000 +0100
|
||||
+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.h 2013-12-12 17:30:48.510007365 +0000
|
||||
@@ -45,7 +45,7 @@ namespace rfb {
|
||||
private:
|
||||
ZRLEEncoder(SMsgWriter* writer);
|
||||
SMsgWriter* writer;
|
||||
- rdr::ZlibOutStream zos;
|
||||
+ rdr::ZlibOutStream* zos;
|
||||
rdr::MemOutStream* mos;
|
||||
static rdr::MemOutStream* sharedMos;
|
||||
static int maxLen;
|
@ -1,6 +1,6 @@
|
||||
Name: tigervnc
|
||||
Version: 1.3.1
|
||||
Release: 11%{?dist}
|
||||
Version: 1.4.2
|
||||
Release: 1%{?dist}
|
||||
Summary: A TigerVNC remote display system
|
||||
|
||||
%global _hardened_build 1
|
||||
@ -44,24 +44,14 @@ Obsoletes: tightvnc < 1.5.0-0.15.20090204svn3586
|
||||
|
||||
Patch1: tigervnc-cookie.patch
|
||||
Patch2: tigervnc11-ldnow.patch
|
||||
Patch3: tigervnc11-gethomedir.patch
|
||||
Patch3: tigervnc-libvnc-os.patch
|
||||
Patch4: tigervnc11-rh692048.patch
|
||||
Patch5: tigervnc-inetd-nowait.patch
|
||||
Patch6: tigervnc-setcursor-crash.patch
|
||||
Patch7: tigervnc-manpages.patch
|
||||
Patch8: tigervnc-getmaster.patch
|
||||
Patch9: tigervnc-shebang.patch
|
||||
Patch10: tigervnc-1.3.0-xserver-1.15.patch
|
||||
Patch11: tigervnc-format-security.patch
|
||||
Patch12: tigervnc-zrle-crash.patch
|
||||
Patch13: tigervnc-cursor.patch
|
||||
Patch14: tigervnc-xstartup.patch
|
||||
Patch15: tigervnc-1.3.1-xserver-1.16.patch
|
||||
Patch16: tigervnc-inputreset.patch
|
||||
Patch17: tigervnc-pointersync.patch
|
||||
|
||||
# This is tigervnc-%{version}/unix/xserver114.patch rebased on the latest xorg
|
||||
Patch100: tigervnc-xserver-1.14-rebased.patch
|
||||
|
||||
%description
|
||||
Virtual Network Computing (VNC) is a remote display system which
|
||||
@ -158,7 +148,7 @@ This package contains icons for TigerVNC viewer
|
||||
|
||||
%patch1 -p1 -b .cookie
|
||||
%patch2 -p1 -b .ldnow
|
||||
%patch3 -p1 -b .gethomedir
|
||||
%patch3 -p1 -b .libvnc-os
|
||||
%patch4 -p1 -b .rh692048
|
||||
|
||||
cp -r /usr/share/xorg-x11-server-source/* unix/xserver
|
||||
@ -166,15 +156,13 @@ pushd unix/xserver
|
||||
for all in `find . -type f -perm -001`; do
|
||||
chmod -x "$all"
|
||||
done
|
||||
%patch100 -p1 -b .vnc
|
||||
patch -p1 -i ../xserver116.patch
|
||||
popd
|
||||
|
||||
# Applied Debian patch to fix busy loop when run from inetd in nowait
|
||||
# mode (bug #920373).
|
||||
%patch5 -p1 -b .inetd-nowait
|
||||
|
||||
%patch6 -p1 -b .setcursor-crash
|
||||
|
||||
# Synchronise manpages and --help output (bug #980870).
|
||||
%patch7 -p1 -b .manpages
|
||||
|
||||
@ -184,28 +172,12 @@ popd
|
||||
# Don't use shebang in vncserver script.
|
||||
%patch9 -p1 -b .shebang
|
||||
|
||||
%patch10 -p1 -b .115
|
||||
|
||||
# Fixed build failure with -Werror=format-security (bug #1037358).
|
||||
%patch11 -p1 -b .format-security
|
||||
|
||||
# Avoid invalid read when ZRLE connection closed (upstream bug #133).
|
||||
%patch12 -p1 -b .zrle-crash
|
||||
|
||||
# Fixed viewer crash when cursor has not been set (bug #1038701).
|
||||
%patch13 -p1 -b .cursor
|
||||
|
||||
# Clearer xstartup file (bug #923655).
|
||||
%patch14 -p1 -b .xstartup
|
||||
|
||||
%patch15 -p1 -b .116
|
||||
|
||||
# Input reset fixes from upstream (bug #1116956).
|
||||
%patch16 -p1 -b .inputreset
|
||||
|
||||
# Keep pointer in sync when using module (upstream bug #152).
|
||||
%patch17 -p1 -b .pointersync
|
||||
|
||||
%build
|
||||
%ifarch sparcv9 sparc64 s390 s390x
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fPIC"
|
||||
@ -376,6 +348,9 @@ fi
|
||||
%{_datadir}/icons/hicolor/*/apps/*
|
||||
|
||||
%changelog
|
||||
* Fri Feb 13 2015 Tim Waugh <twaugh@redhat.com> - 1.4.2-1
|
||||
- 1.4.2.
|
||||
|
||||
* Tue Sep 9 2014 Tim Waugh <twaugh@redhat.com> - 1.3.1-11
|
||||
- Added missing part of xserver114.patch (bug #1137023).
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx.rh690245 tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx
|
||||
--- tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx.rh690245 2011-02-21 14:14:16.000000000 +0100
|
||||
+++ tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityClient.cxx 2011-03-31 09:47:34.519099718 +0200
|
||||
@@ -45,7 +45,7 @@ StringParameter SecurityClient::secTypes
|
||||
("SecurityTypes",
|
||||
"Specify which security scheme to use (None, VncAuth)",
|
||||
diff -up tigervnc-1.4.2/common/rfb/SecurityClient.cxx.rh692048 tigervnc-1.4.2/common/rfb/SecurityClient.cxx
|
||||
--- tigervnc-1.4.2/common/rfb/SecurityClient.cxx.rh692048 2015-02-12 18:32:50.168861186 +0000
|
||||
+++ tigervnc-1.4.2/common/rfb/SecurityClient.cxx 2015-02-12 18:33:13.168003696 +0000
|
||||
@@ -49,7 +49,7 @@ StringParameter SecurityClient::secTypes
|
||||
#endif
|
||||
")",
|
||||
#ifdef HAVE_GNUTLS
|
||||
- "X509Plain,TLSPlain,X509Vnc,TLSVnc,X509None,TLSNone,VncAuth,None",
|
||||
+ "VeNCrypt,X509Plain,TLSPlain,X509Vnc,TLSVnc,X509None,TLSNone,VncAuth,None",
|
||||
#else
|
||||
"VncAuth,None",
|
||||
#endif
|
||||
diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx
|
||||
--- tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 2011-02-21 14:14:16.000000000 +0100
|
||||
+++ tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx 2011-03-31 09:47:34.519099718 +0200
|
||||
@@ -67,7 +67,6 @@ const std::list<rdr::U8> Security::GetEn
|
||||
diff -up tigervnc-1.4.2/common/rfb/Security.cxx.rh692048 tigervnc-1.4.2/common/rfb/Security.cxx
|
||||
--- tigervnc-1.4.2/common/rfb/Security.cxx.rh692048 2015-01-23 23:37:23.000000000 +0000
|
||||
+++ tigervnc-1.4.2/common/rfb/Security.cxx 2015-02-12 18:32:50.168861186 +0000
|
||||
@@ -68,7 +68,6 @@ const std::list<rdr::U8> Security::GetEn
|
||||
list<rdr::U8> result;
|
||||
list<U32>::iterator i;
|
||||
|
||||
@ -21,7 +21,7 @@ diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 tigerv
|
||||
for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++)
|
||||
if (*i < 0x100)
|
||||
result.push_back(*i);
|
||||
@@ -105,8 +104,6 @@ bool Security::IsSupported(U32 secType)
|
||||
@@ -106,8 +105,6 @@ bool Security::IsSupported(U32 secType)
|
||||
for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++)
|
||||
if (*i == secType)
|
||||
return true;
|
||||
@ -30,14 +30,14 @@ diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/Security.cxx.rh690245 tigerv
|
||||
|
||||
return false;
|
||||
}
|
||||
diff -up tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx.rh690245 tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx
|
||||
--- tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx.rh690245 2011-02-21 14:50:17.000000000 +0100
|
||||
+++ tigervnc-1.0.90-20110314svn4359/common/rfb/SecurityServer.cxx 2011-03-31 10:06:43.595362302 +0200
|
||||
@@ -39,7 +39,7 @@ StringParameter SecurityServer::secTypes
|
||||
("SecurityTypes",
|
||||
"Specify which security scheme to use (None, VncAuth)",
|
||||
diff -up tigervnc-1.4.2/common/rfb/SecurityServer.cxx.rh692048 tigervnc-1.4.2/common/rfb/SecurityServer.cxx
|
||||
--- tigervnc-1.4.2/common/rfb/SecurityServer.cxx.rh692048 2015-02-12 18:32:50.168861186 +0000
|
||||
+++ tigervnc-1.4.2/common/rfb/SecurityServer.cxx 2015-02-12 18:33:24.977076868 +0000
|
||||
@@ -43,7 +43,7 @@ StringParameter SecurityServer::secTypes
|
||||
#endif
|
||||
")",
|
||||
#ifdef HAVE_GNUTLS
|
||||
- "VncAuth,TLSVnc",
|
||||
- "TLSVnc,VncAuth",
|
||||
+ "VncAuth",
|
||||
#else
|
||||
"VncAuth",
|
||||
|
Loading…
Reference in New Issue
Block a user