]> source.dussan.org Git - tigervnc.git/commitdiff
[Development] Improve privates handling in vncHooks to be compatible with X.Org 1...
authorAdam Tkac <atkac@redhat.com>
Tue, 20 Jul 2010 09:31:38 +0000 (09:31 +0000)
committerAdam Tkac <atkac@redhat.com>
Tue, 20 Jul 2010 09:31:38 +0000 (09:31 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4089 3789f03b-4d11-0410-bbf8-ca57d06f2519

unix/xserver/hw/vnc/vncHooks.cc

index 23dc4ea61ff867c795e317f06bc9d08c5a6c1643..c9a9abf92a41474e0579e29816135b04ba3830c3 100644 (file)
@@ -93,11 +93,16 @@ typedef struct {
 #if XORG == 15
 static DevPrivateKey vncHooksScreenPrivateKey = &vncHooksScreenPrivateKey;
 static DevPrivateKey vncHooksGCPrivateKey = &vncHooksGCPrivateKey;
-#else
+#elif XORG < 19
 static int vncHooksScreenPrivateKeyIndex;
 static int vncHooksGCPrivateKeyIndex;
 static DevPrivateKey vncHooksScreenPrivateKey = &vncHooksScreenPrivateKeyIndex;
 static DevPrivateKey vncHooksGCPrivateKey = &vncHooksGCPrivateKeyIndex;
+#else
+static DevPrivateKeyRec vncHooksScreenKeyRec;
+static DevPrivateKeyRec vncHooksGCKeyRec;
+#define vncHooksScreenPrivateKey (&vncHooksScreenKeyRec)
+#define vncHooksGCPrivateKey (&vncHooksGCKeyRec)
 #endif
 
 #define vncHooksScreenPrivate(pScreen) \
@@ -223,6 +228,7 @@ Bool vncHooksInit(ScreenPtr pScreen, XserverDesktop* desktop)
 {
   vncHooksScreenPtr vncHooksScreen;
 
+#if XORG < 19
   if (!dixRequestPrivate(vncHooksScreenPrivateKey, sizeof(vncHooksScreenRec))) {
     ErrorF("vncHooksInit: Allocation of vncHooksScreen failed\n");
     return FALSE;
@@ -232,6 +238,20 @@ Bool vncHooksInit(ScreenPtr pScreen, XserverDesktop* desktop)
     return FALSE;
   }
 
+#else
+  if (!dixRegisterPrivateKey(&vncHooksScreenKeyRec, PRIVATE_SCREEN,
+      sizeof(vncHooksScreenRec))) {
+    ErrorF("vncHooksInit: Allocation of vncHooksScreen failed\n");
+    return FALSE;
+  }
+  if (!dixRegisterPrivateKey(&vncHooksGCKeyRec, PRIVATE_GC,
+      sizeof(vncHooksGCRec))) {
+    ErrorF("vncHooksInit: Allocation of vncHooksGCRec failed\n");
+    return FALSE;
+  }
+
+#endif
+
   vncHooksScreen = vncHooksScreenPrivate(pScreen);
 
   vncHooksScreen->desktop = desktop;
@@ -344,7 +364,7 @@ static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen_)
 static Bool vncHooksCreateGC(GCPtr pGC)
 {
   SCREEN_UNWRAP(pGC->pScreen, CreateGC);
-    
+
   vncHooksGCPtr vncHooksGC = vncHooksGCPrivate(pGC);
 
   Bool ret = (*pScreen->CreateGC) (pGC);