Bryce suggested running xtrace, and a trace is attached.
My interpretation of it is this: xtrace can't totally decode the RECORD extension messages but it can see them happening. Workrave opens a separate server connection for the callbacks, which seems to be how XRecord is documented to work, and in this trace that's (I think) the lines starting with 003:
Around line 998 after initializing connection 003, it sends a RECORD-Request(137, 5) gets a reply, and nothing more on that channel. So that would be consistent with what I saw in gdb in comment 5 above, and seems to show it's not just something in the client or libraries causing the events to be ignored.
recordstr.h has
52 #define X_RecordEnableContext 5 /* Enable interception and reporting */
Bryce suggested running xtrace, and a trace is attached.
My interpretation of it is this: xtrace can't totally decode the RECORD extension messages but it can see them happening. Workrave opens a separate server connection for the callbacks, which seems to be how XRecord is documented to work, and in this trace that's (I think) the lines starting with 003:
Around line 998 after initializing connection 003, it sends a RECORD-Request(137, 5) gets a reply, and nothing more on that channel. So that would be consistent with what I saw in gdb in comment 5 above, and seems to show it's not just something in the client or libraries causing the events to be ignored.
recordstr.h has
52 #define X_RecordEnableC ontext 5 /* Enable interception and reporting */