xserver: Branch 'server-1.10-branch'

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Sat May 28 17:26:15 PDT 2011


 randr/rrdispatch.c |   32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

New commits:
commit 613e0e9ef74c4542ed458200165adbcdfdf3cd17
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Wed Apr 13 11:51:30 2011 -0700

    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)

diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c
index ac4d2ac..2135504 100644
--- a/randr/rrdispatch.c
+++ b/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.
+		 */
 	    }
 	}
     }


More information about the xorg-commit mailing list