abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
-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;