summaryrefslogtreecommitdiff
path: root/dix
diff options
context:
space:
mode:
Diffstat (limited to 'dix')
-rw-r--r--dix/dispatch.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/dix/dispatch.c b/dix/dispatch.c
index a3c2fbb31..0edcfeea8 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -3965,6 +3965,16 @@ AddGPUScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
update_desktop_dimensions();
+ /*
+ * We cannot register the Screen PRIVATE_CURSOR key if cursors are already
+ * created, because dix/privates.c does not have relocation code for
+ * PRIVATE_CURSOR. Once this is fixed the if() can be removed and we can
+ * register the Screen PRIVATE_CURSOR key unconditionally.
+ */
+ if (!dixPrivatesCreated(PRIVATE_CURSOR))
+ dixRegisterScreenPrivateKey(&cursorScreenDevPriv, pScreen,
+ PRIVATE_CURSOR, 0);
+
return i;
}