aboutsummaryrefslogtreecommitdiff
path: root/doc/nx-X11_vs_XOrg69_patches/rrscreen.c.NX.patch
blob: c5c3d475795b7b31afd42497807e9ed543b7c500 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
--- ./nx-X11/programs/Xserver/randr/rrscreen.c.X.original	2015-02-13 14:03:44.792440567 +0100
+++ ./nx-X11/programs/Xserver/randr/rrscreen.c	2015-02-10 19:13:13.632692326 +0100
@@ -20,6 +20,23 @@
  * OF THIS SOFTWARE.
  */
 
+/**************************************************************************/
+/*                                                                        */
+/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/.         */
+/*                                                                        */
+/* NX-X11, NX protocol compression and NX extensions to this software     */
+/* are copyright of NoMachine. Redistribution and use of the present      */
+/* software is allowed according to terms specified in the file LICENSE   */
+/* which comes in the source distribution.                                */
+/*                                                                        */
+/* Check http://www.nomachine.com/licensing.html for applicability.       */
+/*                                                                        */
+/* NX and NoMachine are trademarks of Medialogic S.p.A.                   */
+/*                                                                        */
+/* All rights reserved.                                                   */
+/*                                                                        */
+/**************************************************************************/
+
 #include "randrstr.h"
 
 extern char	*ConnectionInfo;
@@ -212,7 +229,12 @@
     int				rc;
     
     REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
+    #ifndef NXAGENT_SERVER
     rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+    #else
+    pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
+    rc = pWin ? Success : BadWindow;
+    #endif
     if (rc != Success)
 	return rc;
 
@@ -263,7 +285,12 @@
     int			i, rc;
     
     REQUEST_SIZE_MATCH(xRRSetScreenSizeReq);
+    #ifndef NXAGENT_SERVER
     rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+    #else
+    pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
+    rc = pWin ? Success : BadWindow;
+    #endif
     if (rc != Success)
 	return rc;
 
@@ -333,7 +360,12 @@
     CARD8			*names;
     
     REQUEST_SIZE_MATCH(xRRGetScreenResourcesReq);
+    #ifndef NXAGENT_SERVER
     rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+    #else
+    pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
+    rc = pWin ? Success : BadWindow;
+    #endif
     if (rc != Success)
 	return rc;
     
@@ -582,7 +614,12 @@
     RROutputPtr		    output;
 
     REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
+    #ifndef NXAGENT_SERVER
     rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+    #else
+    pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
+    rc = pWin ? Success : BadWindow;
+    #endif
     if (rc != Success)
 	return rc;
 
@@ -756,7 +793,12 @@
 	has_rate = FALSE;
     }
     
+    #ifndef NXAGENT_SERVER
     rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixWriteAccess);
+    #else
+    pDraw = SecurityLookupDrawable(stuff->drawable, client, SecurityWriteAccess);
+    rc = pDraw ? Success : BadDrawable;
+    #endif
     if (rc != Success)
 	return rc;
 
@@ -921,8 +963,15 @@
 
     if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output))
 	rep.status = RRSetConfigFailed;
+    #ifndef NXAGENT_SERVER /* Bug 21987 */
     else
 	rep.status = RRSetConfigSuccess;
+    #else
+    else {
+	rep.status = RRSetConfigSuccess;
+	pScrPriv->lastSetTime = time;
+    }
+    #endif
 
     /*
      * XXX Configure other crtcs to mirror as much as possible