572 lines
20 KiB
Diff
572 lines
20 KiB
Diff
Index: xorg-server-1.6.1/hw/vnc/cutpaste.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/cutpaste.c
|
|
+++ xorg-server-1.6.1/hw/vnc/cutpaste.c
|
|
@@ -66,7 +66,7 @@ rfbSetXCutText(char *str, int len)
|
|
event.u.selectionClear.time = GetTimeInMillis();
|
|
event.u.selectionClear.window = pSel->window;
|
|
event.u.selectionClear.atom = pSel->selection;
|
|
- (void) TryClientEvents (pSel->client, &event, 1,
|
|
+ (void) TryClientEvents (pSel->client, NULL, &event, 1,
|
|
NoEventMask, NoEventMask /* CantBeFiltered */,
|
|
NullGrab);
|
|
}
|
|
Index: xorg-server-1.6.1/hw/vnc/kbdptr.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/kbdptr.c
|
|
+++ xorg-server-1.6.1/hw/vnc/kbdptr.c
|
|
@@ -74,19 +74,26 @@ vncSetPointerDevice(DeviceIntPtr ptr)
|
|
static void
|
|
EnqueueMotion(DeviceIntPtr ptrDev, int x, int y)
|
|
{
|
|
- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum());
|
|
+ int maxEventsNum = GetMaximumEventsNum();
|
|
+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum);
|
|
+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum);
|
|
int detail = 0, valuators[2], nevents, i;
|
|
valuators[0] = x;
|
|
valuators[1] = y;
|
|
+ for (i = 0; i < maxEventsNum; i++) {
|
|
+ evls[i].event = &events[i];
|
|
+ evls[i].evlen = sizeof(xEvent);
|
|
+ }
|
|
if (!ptrDev) {
|
|
ErrorF("VNC: In EnqueueMotion() ptrDev=NULL\n");
|
|
return;
|
|
}
|
|
- nevents = GetPointerEvents(events, ptrDev, MotionNotify, detail,
|
|
+ nevents = GetPointerEvents(evls, ptrDev, MotionNotify, detail,
|
|
POINTER_ABSOLUTE, 0, 2, valuators);
|
|
for (i = 0; i < nevents; i++)
|
|
mieqEnqueue(ptrDev, events + i);
|
|
free(events);
|
|
+ free(evls);
|
|
}
|
|
#endif
|
|
|
|
@@ -94,33 +101,47 @@ EnqueueMotion(DeviceIntPtr ptrDev, int x
|
|
static void
|
|
EnqueueButton(DeviceIntPtr ptrDev, int type, int detail)
|
|
{
|
|
- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum());
|
|
+ int maxEventsNum = GetMaximumEventsNum();
|
|
+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum);
|
|
+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum);
|
|
int nevents, i;
|
|
+ for (i = 0; i < maxEventsNum; i++) {
|
|
+ evls[i].event = &events[i];
|
|
+ evls[i].evlen = sizeof(xEvent);
|
|
+ }
|
|
if (!ptrDev) {
|
|
ErrorF("VNC: In EnqueueButton() ptrDev=NULL\n");
|
|
return;
|
|
}
|
|
- nevents = GetPointerEvents(events, ptrDev, type, detail,
|
|
+ nevents = GetPointerEvents(evls, ptrDev, type, detail,
|
|
POINTER_ABSOLUTE, 0, 0, NULL/*valuators*/);
|
|
for (i = 0; i < nevents; i++)
|
|
mieqEnqueue(ptrDev, events + i);
|
|
free(events);
|
|
+ free(evls);
|
|
}
|
|
|
|
|
|
static void
|
|
EnqueueKey(DeviceIntPtr kbdDev, int type, int detail)
|
|
{
|
|
- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum());
|
|
+ int maxEventsNum = GetMaximumEventsNum();
|
|
+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum);
|
|
+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum);
|
|
int nevents, i;
|
|
+ for (i = 0; i < maxEventsNum; i++) {
|
|
+ evls[i].event = &events[i];
|
|
+ evls[i].evlen = sizeof(xEvent);
|
|
+ }
|
|
if (!kbdDev) {
|
|
ErrorF("VNC: In EnqueueKey() kbdDev=NULL\n");
|
|
return;
|
|
}
|
|
- nevents = GetKeyboardEvents(events, kbdDev, type, detail);
|
|
+ nevents = GetKeyboardEvents(evls, kbdDev, type, detail);
|
|
for (i = 0; i < nevents; i++)
|
|
mieqEnqueue(kbdDev, events + i);
|
|
free(events);
|
|
+ free(evls);
|
|
}
|
|
|
|
|
|
@@ -256,7 +277,7 @@ KbdAddEvent(Bool down, KeySym keySym, rf
|
|
shiftMustBePressed = TRUE;
|
|
}
|
|
|
|
- SendMappingNotify(MappingKeyboard, keyCode, 1, serverClient);
|
|
+ SendMappingNotify(kbdDevice, MappingKeyboard, keyCode, 1, serverClient);
|
|
|
|
ErrorF("KbdAddEvent: unknown KeySym 0x%x - allocating KeyCode %d\n",
|
|
(int)keySym, keyCode);
|
|
Index: xorg-server-1.6.1/hw/vnc/rfbkeyb.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/rfbkeyb.c
|
|
+++ xorg-server-1.6.1/hw/vnc/rfbkeyb.c
|
|
@@ -388,7 +388,7 @@ static XF86ModuleVersionInfo xf86rfbKeyb
|
|
"xf4vnc Project, see http://xf4vnc.sf.net",
|
|
MODINFOSTRING1,
|
|
MODINFOSTRING2,
|
|
- XF86_VERSION_CURRENT,
|
|
+ XORG_VERSION_CURRENT,
|
|
1, 0, 0,
|
|
ABI_CLASS_XINPUT,
|
|
ABI_XINPUT_VERSION,
|
|
Index: xorg-server-1.6.1/hw/vnc/rfbmouse.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/rfbmouse.c
|
|
+++ xorg-server-1.6.1/hw/vnc/rfbmouse.c
|
|
@@ -98,10 +98,12 @@ xf86rfbMouseControlProc(DeviceIntPtr dev
|
|
void *func1;
|
|
int (*func2)(void);
|
|
|
|
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
|
|
if (LoaderSymbol("GetMotionHistory"))
|
|
func1 = LoaderSymbol("GetMotionHistory");
|
|
else
|
|
func1 = LoaderSymbol("miPointerGetMotionEvents");
|
|
+#endif
|
|
|
|
if (LoaderSymbol("GetMotionHistorySize"))
|
|
func2 = LoaderSymbol("GetMotionHistorySize");
|
|
@@ -120,7 +122,9 @@ xf86rfbMouseControlProc(DeviceIntPtr dev
|
|
map[4] = 4;
|
|
map[5] = 5;
|
|
InitPointerDeviceStruct(pDev, map, 5,
|
|
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
|
|
func1,
|
|
+#endif
|
|
PtrDeviceControl,
|
|
(*func2)(), 2);
|
|
break;
|
|
@@ -243,7 +247,7 @@ static XF86ModuleVersionInfo xf86rfbMous
|
|
"xf4vnc Project, see http://xf4vnc.sf.net",
|
|
MODINFOSTRING1,
|
|
MODINFOSTRING2,
|
|
- XF86_VERSION_CURRENT,
|
|
+ XORG_VERSION_CURRENT,
|
|
1, 0, 0,
|
|
ABI_CLASS_XINPUT,
|
|
ABI_XINPUT_VERSION,
|
|
Index: xorg-server-1.6.1/hw/vnc/rfbserver.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/rfbserver.c
|
|
+++ xorg-server-1.6.1/hw/vnc/rfbserver.c
|
|
@@ -1122,8 +1122,8 @@ rfbProcessClientNormalMessage(cl)
|
|
|
|
{
|
|
int x, y;
|
|
- miPointerPosition(&x, &y); /*XXX deprecated*/
|
|
- (*pVNC->spriteFuncs->SetCursor)(cl->pScreen, pVNC->pCurs, x, y);
|
|
+ miPointerGetPosition(inputInfo.pointer, &x, &y);
|
|
+ (*pVNC->spriteFuncs->SetCursor)(inputInfo.pointer, cl->pScreen, pVNC->pCurs, x, y);
|
|
}
|
|
#endif
|
|
|
|
Index: xorg-server-1.6.1/hw/vnc/sprite.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/sprite.c
|
|
+++ xorg-server-1.6.1/hw/vnc/sprite.c
|
|
@@ -112,7 +112,8 @@ static void rfbSpriteSaveDoomedAreas
|
|
static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed);
|
|
static void rfbSpriteComputeSaved(ScreenPtr pScreen);
|
|
|
|
-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKey;
|
|
+static int rfbSpriteScreenKeyStore;
|
|
+static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore;
|
|
|
|
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \
|
|
((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
|
|
@@ -144,7 +145,8 @@ static GCFuncs rfbSpriteGCFuncs = {
|
|
rfbSpriteCopyClip,
|
|
};
|
|
|
|
-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKey;
|
|
+static int rfbSpriteGCKeyStore;
|
|
+static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore;
|
|
|
|
#define GC_FUNC_PROLOGUE(pGC) \
|
|
rfbSpriteGCPtr pGCPriv = \
|
|
@@ -289,23 +291,27 @@ static GCOps rfbSpriteGCOps = {
|
|
* pointer-sprite method table
|
|
*/
|
|
|
|
-static Bool rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor);
|
|
-static Bool rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor);
|
|
-static void rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y);
|
|
-static void rfbSpriteMoveCursor (ScreenPtr pScreen, int x, int y);
|
|
+static Bool rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor);
|
|
+static Bool rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor);
|
|
+static void rfbSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y);
|
|
+static void rfbSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y);
|
|
+static Bool rfbSpriteInitializeCursor (DeviceIntPtr pDev, ScreenPtr pScreen);
|
|
+static void rfbSpriteCleanupCursor (DeviceIntPtr pDev, ScreenPtr pScreen);
|
|
|
|
miPointerSpriteFuncRec rfbSpritePointerFuncs = {
|
|
rfbSpriteRealizeCursor,
|
|
rfbSpriteUnrealizeCursor,
|
|
rfbSpriteSetCursor,
|
|
rfbSpriteMoveCursor,
|
|
+ rfbSpriteInitializeCursor,
|
|
+ rfbSpriteCleanupCursor,
|
|
};
|
|
|
|
/*
|
|
* other misc functions
|
|
*/
|
|
|
|
-static Bool rfbDisplayCursor (ScreenPtr pScreen, CursorPtr pCursor);
|
|
+static Bool rfbDisplayCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor);
|
|
|
|
|
|
/*
|
|
@@ -1963,7 +1969,7 @@ rfbSpriteLineHelper()
|
|
#define SPRITE_PAD 8
|
|
|
|
static Bool
|
|
-rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor)
|
|
+rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
|
{
|
|
rfbSpriteScreenPtr pScreenPriv;
|
|
|
|
@@ -1975,7 +1981,7 @@ rfbSpriteRealizeCursor (ScreenPtr pScree
|
|
}
|
|
|
|
static Bool
|
|
-rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor)
|
|
+rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
|
{
|
|
rfbSpriteScreenPtr pScreenPriv;
|
|
|
|
@@ -1985,7 +1991,7 @@ rfbSpriteUnrealizeCursor (ScreenPtr pScr
|
|
}
|
|
|
|
static void
|
|
-rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
|
|
+rfbSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)
|
|
{
|
|
rfbSpriteScreenPtr pScreenPriv;
|
|
rfbClientPtr cl, nextCl;
|
|
@@ -2101,13 +2107,24 @@ rfbSpriteSetCursor (ScreenPtr pScreen, C
|
|
}
|
|
|
|
static void
|
|
-rfbSpriteMoveCursor (ScreenPtr pScreen, int x, int y)
|
|
+rfbSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
|
|
{
|
|
rfbSpriteScreenPtr pScreenPriv;
|
|
|
|
pScreenPriv = (rfbSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
|
|
rfbSpriteScreenKey);
|
|
- rfbSpriteSetCursor (pScreen, pScreenPriv->pCursor, x, y);
|
|
+ rfbSpriteSetCursor (pDev, pScreen, pScreenPriv->pCursor, x, y);
|
|
+}
|
|
+
|
|
+static Bool
|
|
+rfbSpriteInitializeCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
|
|
+{
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
+static void
|
|
+rfbSpriteCleanupCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
|
|
+{
|
|
}
|
|
|
|
/*
|
|
@@ -2215,9 +2232,7 @@ rfbSpriteComputeSaved (pScreen)
|
|
*/
|
|
|
|
static Bool
|
|
-rfbDisplayCursor(pScreen, pCursor)
|
|
- ScreenPtr pScreen;
|
|
- CursorPtr pCursor;
|
|
+rfbDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
|
{
|
|
rfbClientPtr cl;
|
|
rfbSpriteScreenPtr pPriv;
|
|
@@ -2230,7 +2245,7 @@ rfbDisplayCursor(pScreen, pCursor)
|
|
|
|
pPriv = (rfbSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
|
|
rfbSpriteScreenKey);
|
|
- status = (*pPriv->DisplayCursor)(pScreen, pCursor);
|
|
+ status = (*pPriv->DisplayCursor)(pDev, pScreen, pCursor);
|
|
|
|
/* send new cursor shape to interested viewers */
|
|
for (cl = rfbClientHead; cl ; cl = cl->next) {
|
|
Index: xorg-server-1.6.1/hw/xfree86/vnc/vncInit.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/xfree86/vnc/vncInit.c
|
|
+++ xorg-server-1.6.1/hw/xfree86/vnc/vncInit.c
|
|
@@ -35,7 +35,7 @@
|
|
#include "xf86.h"
|
|
#include "xf86_OSproc.h"
|
|
#include "xf86Resources.h"
|
|
-#include "xf86Version.h"
|
|
+#include "xorgVersion.h"
|
|
|
|
int vncScreenPrivateIndex = -1;
|
|
int inetdSock = -1;
|
|
@@ -56,11 +56,11 @@ static unsigned long VNCGeneration = 0;
|
|
static const OptionInfoRec *VNCAvailableOptions(void *unused);
|
|
static void rfbWakeupHandler (int i, pointer blockData, unsigned long err, pointer pReadmask);
|
|
|
|
-static Bool vncCursorRealizeCursor(ScreenPtr, CursorPtr);
|
|
-static Bool vncCursorUnrealizeCursor(ScreenPtr, CursorPtr);
|
|
-static void vncCursorSetCursor(ScreenPtr, CursorPtr, int, int);
|
|
-static void vncCursorMoveCursor(ScreenPtr, int, int);
|
|
-static Bool vncDisplayCursor(ScreenPtr, CursorPtr);
|
|
+static Bool vncCursorRealizeCursor(DeviceIntPtr, ScreenPtr, CursorPtr);
|
|
+static Bool vncCursorUnrealizeCursor(DeviceIntPtr, ScreenPtr, CursorPtr);
|
|
+static void vncCursorSetCursor(DeviceIntPtr, ScreenPtr, CursorPtr, int, int);
|
|
+static void vncCursorMoveCursor(DeviceIntPtr, ScreenPtr, int, int);
|
|
+static Bool vncDisplayCursor(DeviceIntPtr, ScreenPtr, CursorPtr);
|
|
|
|
static miPointerSpriteFuncRec vncCursorSpriteFuncs = {
|
|
vncCursorRealizeCursor,
|
|
@@ -389,23 +389,23 @@ VNCInit(ScreenPtr pScreen, unsigned char
|
|
/****** miPointerSpriteFunctions *******/
|
|
|
|
static Bool
|
|
-vncCursorRealizeCursor(ScreenPtr pScreen, CursorPtr pCurs)
|
|
+vncCursorRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs)
|
|
{
|
|
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
|
|
|
|
- return (*pScreenPriv->spriteFuncs->RealizeCursor)(pScreen, pCurs);
|
|
+ return (*pScreenPriv->spriteFuncs->RealizeCursor)(pDev, pScreen, pCurs);
|
|
}
|
|
|
|
static Bool
|
|
-vncCursorUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCurs)
|
|
+vncCursorUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs)
|
|
{
|
|
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
|
|
|
|
- return (*pScreenPriv->spriteFuncs->UnrealizeCursor)(pScreen, pCurs);
|
|
+ return (*pScreenPriv->spriteFuncs->UnrealizeCursor)(pDev, pScreen, pCurs);
|
|
}
|
|
|
|
static void
|
|
-vncCursorSetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y)
|
|
+vncCursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs, int x, int y)
|
|
{
|
|
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
|
|
|
|
@@ -426,11 +426,11 @@ vncCursorSetCursor(ScreenPtr pScreen, Cu
|
|
pScreenPriv->cursorIsDrawn = TRUE;
|
|
#endif
|
|
|
|
- (*pScreenPriv->spriteFuncs->SetCursor)(pScreen, pCurs, x, y);
|
|
+ (*pScreenPriv->spriteFuncs->SetCursor)(pDev, pScreen, pCurs, x, y);
|
|
}
|
|
|
|
static void
|
|
-vncCursorMoveCursor(ScreenPtr pScreen, int x, int y)
|
|
+vncCursorMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
|
|
{
|
|
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
|
|
rfbClientPtr cl;
|
|
@@ -440,7 +440,7 @@ vncCursorMoveCursor(ScreenPtr pScreen, i
|
|
cl->cursorWasMoved = TRUE;
|
|
}
|
|
|
|
- (*pScreenPriv->spriteFuncs->MoveCursor)(pScreen, x, y);
|
|
+ (*pScreenPriv->spriteFuncs->MoveCursor)(pDev, pScreen, x, y);
|
|
}
|
|
|
|
Bool
|
|
@@ -505,9 +505,7 @@ vncUseHWCursorARGB(pScreen, pCursor)
|
|
#endif
|
|
|
|
static Bool
|
|
-vncDisplayCursor(pScreen, pCursor)
|
|
- ScreenPtr pScreen;
|
|
- CursorPtr pCursor;
|
|
+vncDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
|
{
|
|
vncScreenPtr pScreenPriv = VNCPTR(pScreen);
|
|
rfbClientPtr cl;
|
|
@@ -520,7 +518,7 @@ vncDisplayCursor(pScreen, pCursor)
|
|
cl->cursorWasChanged = TRUE;
|
|
}
|
|
|
|
- ret = (*pScreen->DisplayCursor)(pScreen, pCursor);
|
|
+ ret = (*pScreen->DisplayCursor)(pDev, pScreen, pCursor);
|
|
|
|
pScreen->DisplayCursor = vncDisplayCursor;
|
|
|
|
Index: xorg-server-1.6.1/hw/vnc/vncext.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/vncext.c
|
|
+++ xorg-server-1.6.1/hw/vnc/vncext.c
|
|
@@ -36,8 +36,9 @@
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>
|
|
|
|
-DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKey;
|
|
-DevPrivateKey rfbGCKey = &rfbGCKey;
|
|
+static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore;
|
|
+DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore;
|
|
+DevPrivateKey rfbGCKey = &rfbGCKeyStore;
|
|
|
|
int VncSelectNotify(ClientPtr client, BOOL onoff);
|
|
void VncExtensionInit(void);
|
|
@@ -514,7 +515,7 @@ GenerateVncConnectedEvent(int sock)
|
|
else
|
|
conn.ipaddress = (CARD32)peer.sin_addr.s_addr;
|
|
|
|
- (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask,
|
|
+ (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, NoEventMask,
|
|
NoEventMask, NullGrab);
|
|
}
|
|
pn = pn->next;
|
|
@@ -557,7 +558,7 @@ GenerateVncChromiumConnectedEvent(int so
|
|
else
|
|
conn.ipaddress = (CARD32)peer.sin_addr.s_addr;
|
|
|
|
- (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask,
|
|
+ (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, NoEventMask,
|
|
NoEventMask, NullGrab);
|
|
}
|
|
pn = pn->next;
|
|
@@ -586,7 +587,7 @@ GenerateVncDisconnectedEvent(int sock)
|
|
conn.type = VncEventBase + XVncDisconnected;
|
|
conn.sequenceNumber = pn->client->sequence;
|
|
conn.connected = sock;
|
|
- (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask,
|
|
+ (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, NoEventMask,
|
|
NoEventMask, NullGrab);
|
|
}
|
|
pn = pn->next;
|
|
Index: xorg-server-1.6.1/hw/vnc/cursor.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/cursor.c
|
|
+++ xorg-server-1.6.1/hw/vnc/cursor.c
|
|
@@ -262,7 +262,7 @@ rfbSendCursorPos(cl, pScreen)
|
|
|
|
#if XFREE86VNC
|
|
if (pScreen == pCursorScreen)
|
|
- miPointerPosition(&x, &y);
|
|
+ miPointerGetPosition(inputInfo.pointer, &x, &y);
|
|
#else
|
|
rfbSpriteGetCursorPos(pScreen, &x, &y);
|
|
#endif
|
|
Index: xorg-server-1.6.1/hw/vnc/init.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/init.c
|
|
+++ xorg-server-1.6.1/hw/vnc/init.c
|
|
@@ -138,7 +138,7 @@ static void rfbCrossScreen(ScreenPtr pSc
|
|
|
|
|
|
static void
|
|
-PointerWarpCursor(ScreenPtr pScreen, int x, int y)
|
|
+PointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
|
|
{
|
|
#if 0
|
|
DeviceIntPtr pDev = NULL;
|
|
@@ -775,8 +775,8 @@ InitInput(argc, argv)
|
|
char *argv[];
|
|
{
|
|
DeviceIntPtr p, k;
|
|
- k = AddInputDevice(rfbKeybdProc, TRUE);
|
|
- p = AddInputDevice(rfbMouseProc, TRUE);
|
|
+ k = AddInputDevice(serverClient, rfbKeybdProc, TRUE);
|
|
+ p = AddInputDevice(serverClient, rfbMouseProc, TRUE);
|
|
RegisterKeyboardDevice(k);
|
|
RegisterPointerDevice(p);
|
|
|
|
@@ -843,7 +843,6 @@ rfbMouseProc(pDevice, onoff)
|
|
map[4] = 4;
|
|
map[5] = 5;
|
|
InitPointerDeviceStruct(pDev, map, 5,
|
|
- GetMotionHistory,
|
|
PtrDeviceControl,
|
|
GetMaximumEventsNum(), 2 /* numAxes */);
|
|
vncSetPointerDevice(pDevice);
|
|
Index: xorg-server-1.6.1/hw/vnc/dispcur.c
|
|
===================================================================
|
|
--- xorg-server-1.6.1.orig/hw/vnc/dispcur.c
|
|
+++ xorg-server-1.6.1/hw/vnc/dispcur.c
|
|
@@ -74,7 +74,10 @@ in this Software without prior written a
|
|
|
|
/* per-screen private data */
|
|
|
|
-static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKey;
|
|
+static int rfbDCScreenKeyStore;
|
|
+static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore;
|
|
+static int rfbScreenKeyStore;
|
|
+static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore;
|
|
|
|
static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen);
|
|
|
|
@@ -205,7 +208,7 @@ rfbDCRealizeCursor (pScreen, pCursor)
|
|
CursorPtr pCursor;
|
|
{
|
|
if (pCursor->bits->refcnt <= 1)
|
|
- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, NULL);
|
|
+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, NULL);
|
|
return TRUE;
|
|
}
|
|
|
|
@@ -303,7 +306,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP
|
|
xfree ((pointer) pPriv);
|
|
return (rfbDCCursorPtr)NULL;
|
|
}
|
|
- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, pPriv);
|
|
+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, pPriv);
|
|
return pPriv;
|
|
}
|
|
pPriv->pPicture = 0;
|
|
@@ -321,7 +324,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP
|
|
xfree ((pointer) pPriv);
|
|
return (rfbDCCursorPtr)NULL;
|
|
}
|
|
- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, pPriv);
|
|
+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, pPriv);
|
|
|
|
/* create the two sets of bits, clipping as appropriate */
|
|
|
|
@@ -368,7 +371,7 @@ rfbDCUnrealizeCursor (pScreen, pCursor)
|
|
rfbDCCursorPtr pPriv;
|
|
|
|
pPriv = (rfbDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates,
|
|
- pScreen);
|
|
+ rfbScreenKey);
|
|
if (pPriv && (pCursor->bits->refcnt <= 1))
|
|
{
|
|
if (pPriv->sourceBits)
|
|
@@ -380,7 +383,7 @@ rfbDCUnrealizeCursor (pScreen, pCursor)
|
|
FreePicture (pPriv->pPicture, 0);
|
|
#endif
|
|
xfree ((pointer) pPriv);
|
|
- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, NULL);
|
|
+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, NULL);
|
|
}
|
|
return TRUE;
|
|
}
|
|
@@ -439,7 +442,7 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y
|
|
WindowPtr pWin;
|
|
|
|
pPriv = (rfbDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates,
|
|
- pScreen);
|
|
+ rfbScreenKey);
|
|
if (!pPriv)
|
|
{
|
|
pPriv = rfbDCRealize(pScreen, pCursor);
|
|
@@ -690,7 +693,7 @@ rfbDCMoveCursor (pScreen, pCursor, x, y,
|
|
PixmapPtr pTemp;
|
|
|
|
pPriv = (rfbDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates,
|
|
- pScreen);
|
|
+ rfbScreenKey);
|
|
if (!pPriv)
|
|
{
|
|
pPriv = rfbDCRealize(pScreen, pCursor);
|