From e872c5878874bdd035b9ca870853068a53cfc002 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sat, 19 Mar 2022 15:39:20 +0100 Subject: Allow modifiers to hide keys Modifiers can temporarily remove a key from the layout by returning 'null'. Make sure pointer handling code handle these modified keys gracefully and doesn't trigger a key event and a vibration for the removed key. --- srcs/juloo.keyboard2/Keyboard2View.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'srcs/juloo.keyboard2/Keyboard2View.java') diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index a6ab99c..11cf970 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -67,26 +67,27 @@ public class Keyboard2View extends View invalidate(); } - public void onPointerDown(KeyValue k) + public KeyValue onPointerDown(KeyValue k) { - updateFlags(); + k = KeyModifier.handleFlags(k, _flags); invalidate(); if (k != null) vibrate(); + return k; } - public void onPointerSwipe(KeyValue k) + public KeyValue onPointerSwipe(KeyValue k) { - updateFlags(); + k = KeyModifier.handleFlags(k, _flags); invalidate(); if (k != null) vibrate(); + return k; } public void onPointerUp(KeyValue k) { _config.handler.handleKeyUp(k, _flags); - updateFlags(); invalidate(); } @@ -97,7 +98,6 @@ public class Keyboard2View extends View public void onPointerFlagsChanged() { - updateFlags(); invalidate(); } @@ -202,6 +202,7 @@ public class Keyboard2View extends View @Override protected void onDraw(Canvas canvas) { + updateFlags(); float y = _config.marginTop + _config.keyVerticalInterval / 2; for (KeyboardData.Row row : _keyboard.rows) { -- cgit v1.2.3