summaryrefslogtreecommitdiff
path: root/hw/xnest/Screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xnest/Screen.c')
-rw-r--r--hw/xnest/Screen.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c
index 9d157a3c6..1c129e703 100644
--- a/hw/xnest/Screen.c
+++ b/hw/xnest/Screen.c
@@ -41,9 +41,11 @@ is" without express or implied warranty.
#include "Init.h"
#include "mipointer.h"
#include "Args.h"
+#include "mipointrst.h"
Window xnestDefaultWindows[MAXSCREENS];
Window xnestScreenSaverWindows[MAXSCREENS];
+DevPrivateKey xnestCursorScreenKey = &xnestCursorScreenKey;
ScreenPtr
xnestScreen(Window window)
@@ -124,8 +126,8 @@ static miPointerSpriteFuncRec xnestPointerSpriteFuncs =
xnestUnrealizeCursor,
xnestSetCursor,
xnestMoveCursor,
- NULL,
- NULL
+ xnestDeviceCursorInitialize,
+ xnestDeviceCursorCleanup
};
Bool
@@ -141,6 +143,7 @@ xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[])
XSizeHints sizeHints;
VisualID defaultVisual;
int rootDepth;
+ miPointerScreenPtr PointPriv;
if (!dixRequestPrivate(xnestWindowPrivateKey, sizeof(xnestPrivWin)))
return False;
@@ -307,7 +310,11 @@ xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[])
pScreen->blockData = NULL;
pScreen->wakeupData = NULL;
- miDCInitialize (pScreen, &xnestPointerCursorFuncs);
+ miDCInitialize(pScreen, &xnestPointerCursorFuncs); /* init SW rendering */
+ PointPriv = dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
+ xnestCursorFuncs.spriteFuncs = PointPriv->spriteFuncs;
+ dixSetPrivate(&pScreen->devPrivates, xnestCursorScreenKey, &xnestCursorFuncs);
+ PointPriv->spriteFuncs = &xnestPointerSpriteFuncs;
pScreen->mmWidth = xnestWidth * DisplayWidthMM(xnestDisplay,
DefaultScreen(xnestDisplay)) /