So, you can't redesign it to allow two programs to grab the keyboard and mouse?
I would suggest that each program, by default, will have the complete attention of the mouse and keyboard. If a program calls a function, method on an API (I don't work in your world, sorry. Bear with me), it will flip it from default and allow two programs/packages at once to have the keyboard and mouse?
So, you can't redesign it to allow two programs to grab the keyboard and mouse?
I would suggest that each program, by default, will have the complete attention of the mouse and keyboard. If a program calls a function, method on an API (I don't work in your world, sorry. Bear with me), it will flip it from default and allow two programs/packages at once to have the keyboard and mouse?