ThinLinc 4.10.0 (via bug 400) got support for synchronising the state of the lock keys (caps lock, num lock, scroll lock) between the server and the client. This solves some special corner cases.
Unfortunately, we accidentally broke this in ThinLinc 4.12.0 in bug 7373 when some debug code was accidentally left in.
The upstream commit breaking this is this one:
Things have mostly worked fine anyway, since it is rare this synchronisation matters. We also added some fallback handling in bug 400 that further minimises when issues arise.
To test this:
1. Connect to a session
2. Switch to a different window locally
3. Switch lock state (e.g. enable caps lock)
4. Switch focus back to the client
At this point, the lock state on the server should immediately change (check for fake key events via xev), but it currently doesn't.
Fake key events are now instead sent when the server detects that something is off. Generally, when you press a letter key.