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:
if (stuff->enable & (RRScreenChangeNotifyMask|
Oh, wait, I see what you're saying. Yeah, probably just an oversight.
Created attachment 26738 [details] [review]
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:
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