While looking at exactly what the RRNotify_* event subcodes mean, I caught this in randrproto.txt (section 7 - Extension requests) where it talks about RRSelectInput: RRCrtcChangeNotify may also be sent when this request executes if the CRTC configuration has changed since the client connected, to avoid race conditions. And similarly for RROutputChangeNotify. However, xserver/randr/rrdispatch.c:ProcRRSelectInput() and it only checks for RRScreenChangeNotifyMask. It doesn't check for RRCrtcChangeMask nor RROutputChangeMask. Am I misreading something, or is this just an oversight in that function? Also, randrproto.txt doesn't say anything about RROutputPropertyNotifyMask within RRSelectInput, but it seems that it may as well send the corresponding event if the properties changed since the client connected.
I have no idea what X source you're looking at: http://cgit.freedesktop.org/xorg/xserver/tree/randr/rrdispatch.c#n87 if (stuff->enable & (RRScreenChangeNotifyMask| RRCrtcChangeNotifyMask| RROutputChangeNotifyMask| RROutputPropertyNotifyMask))
Oh, wait, I see what you're saying. Yeah, probably just an oversight.
Created attachment 26738 [details] [review] xserver-bfo21760-RRSelectInput-missing-events.diff
Federico, have you been living on this patch? Does it still apply to ToT? Please followup by sending the patch for review to the xorg-devel mailing list for review.
Sorry, I don't have an xorg build environment anymore to test this. This didn't come about from a real, observed bug, but rather from reading the source and the randrproto spec together. It seemed odd that events weren't being generated as advertised. Could you or someone else, that is closer than myself to xorg development, please send the patch to the list for consideration? I don't think any clients do so fine-grained matching of events that they would be affected by the current behavior (i.e. they use a blunt hammer and refresh everything on every event), but it would be nice to have the code match the spec.
It's on master: http://cgit.freedesktop.org/xorg/xserver/commit/?id=b2997431fd426ab318bc5dfd2cd43956d733ebec Leaving open to track merging into 1.10 post 1.10.1. Sorry, but it looks like Keith's git-am gave me credit instead of you for authorship.
No problem. Thanks again for babysitting my patch :)
Sorry, I dropped the ball merging this into 1.10.2. I'll get it into 1.10.3.
d784fd0..613e0e9 server-1.10-branch -> server-1.10-branch
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.