[79064] trunk/dports/x11/xorg-server-devel/files

jeremyhu at macports.org jeremyhu at macports.org
Tue May 31 14:17:08 PDT 2011


Revision: 79064
          http://trac.macports.org/changeset/79064
Author:   jeremyhu at macports.org
Date:     2011-05-31 14:17:08 -0700 (Tue, 31 May 2011)
Log Message:
-----------
Add missing patches #29662

Added Paths:
-----------
    trunk/dports/x11/xorg-server-devel/files/0001-Send-events-that-were-missing-from-RRSelectInput.patch
    trunk/dports/x11/xorg-server-devel/files/0002-randr-check-rotated-virtual-size-limits-correctly.patch

Added: trunk/dports/x11/xorg-server-devel/files/0001-Send-events-that-were-missing-from-RRSelectInput.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0001-Send-events-that-were-missing-from-RRSelectInput.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0001-Send-events-that-were-missing-from-RRSelectInput.patch	2011-05-31 21:17:08 UTC (rev 79064)
@@ -0,0 +1,72 @@
+From 613e0e9ef74c4542ed458200165adbcdfdf3cd17 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Wed, 13 Apr 2011 11:51:30 -0700
+Subject: [PATCH 1/2] Send events that were missing from RRSelectInput
+
+The RANDR spec (randrproto.txt) specifies that RRSelectInput will send out
+events corresponding to the event mask, if there have been changes to
+CRTCs or outputs.  Only screen events were being generated, however.
+
+Fixes http://bugs.freedesktop.org/21760
+
+Signed-off-by: Federico Mena Quintero <federico at novell.com>
+Reviewd-by: Keith Packard <keithp at keithp.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit b2997431fd426ab318bc5dfd2cd43956d733ebec)
+---
+ randr/rrdispatch.c |   32 ++++++++++++++++++++++++++++++--
+ 1 files changed, 30 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.10.2/randr/rrdispatch.c xorg-server-1.10.2/randr/rrdispatch.c
+index ac4d2ac..2135504 100644
+--- xorg-server-1.10.2/randr/rrdispatch.c
++++ xorg-server-1.10.2/randr/rrdispatch.c
+@@ -146,7 +146,7 @@ ProcRRSelectInput (ClientPtr client)
+ 	/*
+ 	 * Now see if the client needs an event
+ 	 */
+-	if (pScrPriv && (pRREvent->mask & RRScreenChangeNotifyMask))
++	if (pScrPriv)
+ 	{
+ 	    pTimes = &((RRTimesPtr) (pRRClient + 1))[pScreen->myNum];
+ 	    if (CompareTimeStamps (pTimes->setTime, 
+@@ -154,7 +154,35 @@ ProcRRSelectInput (ClientPtr client)
+ 		CompareTimeStamps (pTimes->configTime, 
+ 				   pScrPriv->lastConfigTime) != 0)
+ 	    {
+-		RRDeliverScreenEvent (client, pWin, pScreen);
++		if (pRREvent->mask & RRScreenChangeNotifyMask)
++		{
++		    RRDeliverScreenEvent (client, pWin, pScreen);
++		}
++
++		if (pRREvent->mask & RRCrtcChangeNotifyMask)
++		{
++		    int i;
++
++		    for (i = 0; i < pScrPriv->numCrtcs; i++)
++		    {
++			RRDeliverCrtcEvent (client, pWin, pScrPriv->crtcs[i]);
++		    }
++		}
++
++		if (pRREvent->mask & RROutputChangeNotifyMask)
++		{
++		    int i;
++
++		    for (i = 0; i < pScrPriv->numOutputs; i++)
++		    {
++			RRDeliverOutputEvent (client, pWin, pScrPriv->outputs[i]);
++		    }
++		}
++
++		/* We don't check for RROutputPropertyNotifyMask, as randrproto.txt doesn't
++		 * say if there ought to be notifications of changes to output properties
++		 * if those changes occurred before the time RRSelectInput is called.
++		 */
+ 	    }
+ 	}
+     }
+-- 
+1.7.4.1
+

Added: trunk/dports/x11/xorg-server-devel/files/0002-randr-check-rotated-virtual-size-limits-correctly.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0002-randr-check-rotated-virtual-size-limits-correctly.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0002-randr-check-rotated-virtual-size-limits-correctly.patch	2011-05-31 21:17:08 UTC (rev 79064)
@@ -0,0 +1,65 @@
+From 50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <aplattner at nvidia.com>
+Date: Tue, 24 May 2011 16:02:42 -0700
+Subject: [PATCH 2/2] randr: check rotated virtual size limits correctly
+
+Commit d1107918d4626268803b54033a07405122278e7f introduced checks to
+the RandR path that cause RRSetScreenConfig requests to fail if the
+size is too large.  Unfortunately, when RandR 1.1 rotation is enabled
+it compares the rotated screen dimensions to the unrotated limits,
+which causes 90- and 270-degree rotation to fail unless your screen
+happens to be square:
+
+  X Error of failed request:  BadValue (integer parameter out of range for operation)
+    Major opcode of failed request:  153 (RANDR)
+    Minor opcode of failed request:  2 (RRSetScreenConfig)
+    Value in failed request:  0x780
+    Serial number of failed request:  14
+    Current serial number in output stream:  14
+
+Fix this by moving the check above the code that swaps the dimensions
+based on the rotation.
+
+Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
+Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
+Tested-by: Robert Hooker <robert.hooker at canonical.com>
+Tested-by: Kent Baxley <kent.baxley at canonical.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit b6c7b9b2f39e970cedb6bc1e073f901e28cb0fa3)
+---
+ randr/rrscreen.c |   12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git xorg-server-1.10.2/randr/rrscreen.c xorg-server-1.10.2/randr/rrscreen.c
+index 1bc1a9e..da6d48d 100644
+--- xorg-server-1.10.2/randr/rrscreen.c
++++ xorg-server-1.10.2/randr/rrscreen.c
+@@ -910,12 +910,6 @@ ProcRRSetScreenConfig (ClientPtr client)
+      */
+     width = mode->mode.width;
+     height = mode->mode.height;
+-    if (rotation & (RR_Rotate_90|RR_Rotate_270))
+-    {
+-	width = mode->mode.height;
+-	height = mode->mode.width;
+-    }
+-
+     if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
+ 	client->errorValue = width;
+ 	free(pData);
+@@ -927,6 +921,12 @@ ProcRRSetScreenConfig (ClientPtr client)
+ 	return BadValue;
+     }
+ 
++    if (rotation & (RR_Rotate_90|RR_Rotate_270))
++    {
++	width = mode->mode.height;
++	height = mode->mode.width;
++    }
++
+     if (width != pScreen->width || height != pScreen->height)
+     {
+ 	int	c;
+-- 
+1.7.4.1
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110531/0abcc194/attachment.html>


More information about the macports-changes mailing list