I'm a hardware boxer and I sometimes throw myself in a spin if I switch from multicasting to KVM too quickly.

A brief explanation:
For every keypress, there is both a "keydown" event and a "keyup" event. So, when you hold down a button, there is a longer period of time between the "keydown" and "keyup" events.

Now take a look at multiboxing (software and hardware). Let's say you were broadcasting keys to all clients and you held down your "move forward" key (either "w" or "up arrow"). Then you decided to turn broadcasting off. What do you think would happen when you release the "move forward" button?

Active client = stops moving, because they receive a "keyup" signal
All other "background" clients = continues moving, because (since you turned off broadcasting) you are no longer broadcasting the "keyup" signal to all clients, so all they've seen is a "keydown"


The same goes for the mouse. If you're too quick to swap screens and you don't actually release the buttons before changing to a different screen, that client will never receive the signal that the button is released.


Understanding the cause of the problem is the start to resolving it. Just be careful when you're mashing buttons or swapping between screens rapidly -- make sure every screen that gets the "keydown" event also gets the "keyup" event.