diff --git a/bugs.txt b/bugs.txt index 4c6a329ab..97d2ba98a 100644 --- a/bugs.txt +++ b/bugs.txt @@ -13,8 +13,6 @@ Known bugs - 32-bpp color mode does not work with SW video surface, 24-bpp and 32-bpp mode does not work with SDL_HWSURFACE. -- Set on-screen button - Requested features ================== diff --git a/project/java/MainActivity.java b/project/java/MainActivity.java index 5d3375b0b..c355b53fa 100644 --- a/project/java/MainActivity.java +++ b/project/java/MainActivity.java @@ -72,6 +72,7 @@ import android.os.Message; import java.util.concurrent.Semaphore; import android.content.pm.ActivityInfo; import android.view.Display; +import android.text.InputType; public class MainActivity extends Activity { @@ -418,13 +419,35 @@ public class MainActivity extends Activity _parent.hideScreenKeyboard(); return true; } - if ((sendBackspace && event.getAction() == KeyEvent.ACTION_UP) && (keyCode == KeyEvent.KEYCODE_DEL || keyCode == KeyEvent.KEYCODE_CLEAR)) + if (keyCode == KeyEvent.KEYCODE_DEL || keyCode == KeyEvent.KEYCODE_CLEAR) { - synchronized(textInput) { - DemoRenderer.nativeTextInput( 8, 0 ); // Send backspace to native code + if (sendBackspace && event.getAction() == KeyEvent.ACTION_UP) + { + synchronized(textInput) { + DemoRenderer.nativeTextInput( 8, 0 ); // Send backspace to native code + } + } + // EditText deletes two characters at a time, here's a hacky fix + if (event.getAction() == KeyEvent.ACTION_DOWN && (event.getFlags() | KeyEvent.FLAG_SOFT_KEYBOARD) != 0) + { + EditText t = (EditText) v; + int start = t.getSelectionStart(); //get cursor starting position + int end = t.getSelectionEnd(); //get cursor ending position + if ( start < 0 ) + return true; + if ( end < 0 || end == start ) + { + start --; + if ( start < 0 ) + return true; + end = start + 1; + } + t.setText(t.getText().toString().substring(0, start) + t.getText().toString().substring(end)); + t.setSelection(start); + return true; } - return false; // and proceed to delete text in keyboard input field } + //System.out.println("Key " + keyCode + " flags " + event.getFlags() + " action " + event.getAction()); return false; } }; @@ -433,7 +456,8 @@ public class MainActivity extends Activity _screenKeyboard.setOnKeyListener(new simpleKeyListener(this, sendBackspace)); _screenKeyboard.setHint(R.string.text_edit_click_here); _screenKeyboard.setText(oldText); - _screenKeyboard.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.NONE, false)); + //_screenKeyboard.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.NONE, false)); + _screenKeyboard.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); _screenKeyboard.setFocusableInTouchMode(true); _screenKeyboard.setFocusable(true); _screenKeyboard.requestFocus(); diff --git a/project/jni/application/openarena/engine b/project/jni/application/openarena/engine index 687e52c61..6b6c47476 160000 --- a/project/jni/application/openarena/engine +++ b/project/jni/application/openarena/engine @@ -1 +1 @@ -Subproject commit 687e52c612456cda5f868f369482296eb0d54235 +Subproject commit 6b6c4747681a948d27c408f9664c04593bd5d324 diff --git a/project/jni/application/openarena/vm b/project/jni/application/openarena/vm index 490da111b..af7b8f465 160000 --- a/project/jni/application/openarena/vm +++ b/project/jni/application/openarena/vm @@ -1 +1 @@ -Subproject commit 490da111b711565fa5452aee16f6cd3fa3b68ac8 +Subproject commit af7b8f465213fcad25199fdfec92c4a86a329b25