Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/kmcaster.git

Parameterize key release delays

Author DaveJarvis <email>
Date 2020-07-25 14:54:56 GMT-0700
Commit 7b3ed32faa803efc8e67d19f3fb38a16ac76d3ea
Parent 1f594f9
src/main/com/whitemagicsoftware/kmcaster/KmCaster.java
import java.util.logging.Level;
-import static com.whitemagicsoftware.kmcaster.ui.Constants.TRANSLUCENT;
+import static com.whitemagicsoftware.kmcaster.ui.Constants.*;
import static com.whitemagicsoftware.kmcaster.ui.FontLoader.initFonts;
import static java.util.logging.Logger.getLogger;
private void initKeyboardListener( final PropertyChangeListener listener ) {
- final KeyboardListener keyboardListener = new KeyboardListener();
+ final KeyboardListener keyboardListener = new KeyboardListener(
+ DELAY_KEY_REGULAR, DELAY_KEY_MODIFIER
+ );
addNativeKeyListener( keyboardListener );
keyboardListener.addPropertyChangeListener( listener );
src/main/com/whitemagicsoftware/kmcaster/listeners/KeyboardListener.java
private final Stack<Timer> mTimerStack = new Stack<>();
+ private final int mDelayRegular;
+ private final int mDelayModifier;
+
/**
* Creates a keyboard listener that publishes events when keys are either
* pressed or released. The constructor initializes all modifier keys to
* the released state because the native keyboard hook API does not offer
* a way to query what keys are currently pressed.
*/
- public KeyboardListener() {
+ public KeyboardListener(final int delayRegular, final int delayModifier ) {
+ mDelayRegular = delayRegular;
+ mDelayModifier = delayModifier;
+
for( final var key : modifierSwitches() ) {
mModifiers.put( key, 0 );
@Override
public void nativeKeyReleased( final NativeKeyEvent e ) {
- final var regularDelay = 250;
- final var modifierDelay = 100;
-
final var key = getKey( e );
if( key == null ) {
- final var timer = delayedAction( regularDelay, ( action ) ->
+ final var timer = delayedAction( mDelayRegular, ( action ) ->
updateRegular( getDisplayText( e ), BOOLEAN_FALSE )
);
mTimerStack.push( timer );
}
else {
- delayedAction( modifierDelay, ( action ) ->
+ delayedAction( mDelayModifier, ( action ) ->
updateModifier( key, -1 ) );
}
src/main/com/whitemagicsoftware/kmcaster/ui/Constants.java
/**
+ * Milliseconds to wait before releasing (clearing) the regular key.
+ */
+ public final static int DELAY_KEY_REGULAR = 250;
+
+ /**
+ * Milliseconds to wait before releasing (clearing) any modifier key.
+ */
+ public final static int DELAY_KEY_MODIFIER = 150;
+
+ /**
* Private, empty constructor.
*/
Delta 23 lines added, 8 lines removed, 15-line increase