Avoiding unnecessary renders when moving mouse across keyboard
Avoiding unnecessary renders when moving mouse across keyboard

Specifically, when moving the mouse over the keyboard without any
mouse buttons pressed. The logic that handles deactivating the
keyboard when the mouse button is released without being over the
keyboard was too agressive, and was causing a state change on every
mouse move event that occured over the keyboard without any buttons
pressed. This caused lots of no-op state changes and renders.

The logic is now updated to only deactivate the keyboard when it is
currently active, which avoids the unnecessary state changes.

jstrait/jssynth,jstrait/jssynth