abouttreesummaryrefslogcommitdiff
path: root/srcs
diff options
context:
space:
mode:
authorjuloo2015-08-03 15:58:13 +0200
committerjuloo2015-08-03 15:58:13 +0200
commitb32f2ce3f370244c98178f140d38e5b6f0ac2220 (patch)
tree797ef633ab027a32e0f9d47814ded2e4bc02964c /srcs
parente9df9bc2991fab7632270f3c7fe1aa513a9f9251 (diff)
downloadunexpected-keyboard-b32f2ce3f370244c98178f140d38e5b6f0ac2220.tar.gz
unexpected-keyboard-b32f2ce3f370244c98178f140d38e5b6f0ac2220.zip
Fix del key and keyEvent keys
Diffstat (limited to 'srcs')
-rw-r--r--srcs/juloo.keyboard2/Keyboard2.java62
-rw-r--r--srcs/juloo.keyboard2/Keyboard2View.java2
2 files changed, 33 insertions, 31 deletions
diff --git a/srcs/juloo.keyboard2/Keyboard2.java b/srcs/juloo.keyboard2/Keyboard2.java
index d02b239..30ef5fc 100644
--- a/srcs/juloo.keyboard2/Keyboard2.java
+++ b/srcs/juloo.keyboard2/Keyboard2.java
@@ -32,41 +32,43 @@ public class Keyboard2 extends InputMethodService
if (getCurrentInputConnection() == null)
return ;
if ((flags & (KeyValue.FLAG_CTRL | KeyValue.FLAG_ALT)) != 0)
- {
- int metaState = 0;
- KeyEvent event;
-
- if (key.getEventCode() == KeyValue.EVENT_NONE)
- return ;
- if ((flags & KeyValue.FLAG_CTRL) != 0)
- metaState |= KeyEvent.META_CTRL_LEFT_ON | KeyEvent.META_CTRL_ON;
- if ((flags & KeyValue.FLAG_ALT) != 0)
- metaState |= KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_ON;
- if ((flags & KeyValue.FLAG_SHIFT) != 0)
- metaState |= KeyEvent.META_SHIFT_LEFT_ON | KeyEvent.META_SHIFT_ON;
- event = new KeyEvent(1, 1, KeyEvent.ACTION_DOWN, key.getEventCode(), 1, metaState);
- getCurrentInputConnection().sendKeyEvent(event);
- getCurrentInputConnection().sendKeyEvent(KeyEvent.changeAction(event, KeyEvent.ACTION_UP));
- }
+ handleMetaKeyUp(key, flags);
else if (key.getEventCode() == KeyEvent.KEYCODE_DEL)
- {
- getCurrentInputConnection().deleteSurroundingText(1, 0);
- }
+ handleDelKey(1, 0);
else if (key.getEventCode() == KeyEvent.KEYCODE_FORWARD_DEL)
- {
- getCurrentInputConnection().deleteSurroundingText(0, 1);
- }
+ handleDelKey(0, 1);
else if (key.getChar(false) == KeyValue.CHAR_NONE && key.getEventCode() != KeyValue.EVENT_NONE)
- {
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, key.getEventCode());
-
- getCurrentInputConnection().sendKeyEvent(event);
- getCurrentInputConnection().sendKeyEvent(KeyEvent.changeAction(event, KeyEvent.ACTION_UP));
- }
+ handleMetaKeyUp(key, flags);
else if (key.getChar(false) != KeyValue.CHAR_NONE)
- {
sendKeyChar(key.getChar((flags & KeyValue.FLAG_SHIFT) != 0));
- }
+ }
+
+ private void handleDelKey(int before, int after)
+ {
+ CharSequence selection = getCurrentInputConnection().getSelectedText(0);
+
+ if (selection != null && selection.length() > 0)
+ getCurrentInputConnection().commitText("", 1);
+ else
+ getCurrentInputConnection().deleteSurroundingText(before, after);
+ }
+
+ private void handleMetaKeyUp(KeyValue key, int flags)
+ {
+ int metaState = 0;
+ KeyEvent event;
+
+ if (key.getEventCode() == KeyValue.EVENT_NONE)
+ return ;
+ if ((flags & KeyValue.FLAG_CTRL) != 0)
+ metaState |= KeyEvent.META_CTRL_LEFT_ON | KeyEvent.META_CTRL_ON;
+ if ((flags & KeyValue.FLAG_ALT) != 0)
+ metaState |= KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_ON;
+ if ((flags & KeyValue.FLAG_SHIFT) != 0)
+ metaState |= KeyEvent.META_SHIFT_LEFT_ON | KeyEvent.META_SHIFT_ON;
+ event = new KeyEvent(1, 1, KeyEvent.ACTION_DOWN, key.getEventCode(), 1, metaState);
+ getCurrentInputConnection().sendKeyEvent(event);
+ getCurrentInputConnection().sendKeyEvent(KeyEvent.changeAction(event, KeyEvent.ACTION_UP));
}
public static void log(String str)
diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java
index f405850..b30e955 100644
--- a/srcs/juloo.keyboard2/Keyboard2View.java
+++ b/srcs/juloo.keyboard2/Keyboard2View.java
@@ -16,7 +16,7 @@ public class Keyboard2View extends View
{
private static final float KEY_PER_ROW = 10;
- private static final float SUB_VALUE_DIST = 6f;
+ private static final float SUB_VALUE_DIST = 7f;
private static final long VIBRATE_LONG = 25;
private static final long VIBRATE_MIN_INTERVAL = 100;