diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java index a3d09d3d52..de37050223 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java @@ -2,12 +2,9 @@ import android.annotation.SuppressLint; import android.app.AlertDialog; -import android.content.ClipData; -import android.content.ClipboardManager; import android.content.Context; import android.media.AudioManager; import android.os.Environment; -import android.text.TextUtils; import android.view.Gravity; import android.view.InputDevice; import android.view.KeyEvent; @@ -15,7 +12,6 @@ import android.view.View; import android.widget.EditText; import android.widget.ListView; -import android.widget.Toast; import com.termux.R; import com.termux.app.TermuxActivity; @@ -216,6 +212,11 @@ public boolean shouldEnforceCharBasedInput() { return mActivity.getProperties().isEnforcingCharBasedInput(); } + @Override + public boolean isInputComposingDisabled() { + return mActivity.getProperties().isInputComposingDisabled(); + } + @Override public boolean shouldUseCtrlSpaceWorkaround() { return mActivity.getProperties().isUsingCtrlSpaceWorkaround(); diff --git a/terminal-view/src/main/java/com/termux/view/TerminalView.java b/terminal-view/src/main/java/com/termux/view/TerminalView.java index 2cadd9a12f..efa642d628 100644 --- a/terminal-view/src/main/java/com/termux/view/TerminalView.java +++ b/terminal-view/src/main/java/com/termux/view/TerminalView.java @@ -99,7 +99,6 @@ public final class TerminalView extends View { private static final String LOG_TAG = "TerminalView"; private final SpannableStringBuilder imeBuffer = new SpannableStringBuilder(""); - boolean composing=true; public TerminalView(Context context, AttributeSet attributes) { // NO_UCD (unused code) super(context, attributes); mGestureRecognizer = new GestureAndScaleRecognizer(context, new GestureAndScaleRecognizer.Listener() { @@ -282,7 +281,7 @@ public Editable getImeBuffer() { @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { - if(composing){ + if(!mClient.isInputComposingDisabled()){ outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI | EditorInfo.IME_FLAG_NO_FULLSCREEN | diff --git a/terminal-view/src/main/java/com/termux/view/TerminalViewClient.java b/terminal-view/src/main/java/com/termux/view/TerminalViewClient.java index d6b49b892c..542c896326 100644 --- a/terminal-view/src/main/java/com/termux/view/TerminalViewClient.java +++ b/terminal-view/src/main/java/com/termux/view/TerminalViewClient.java @@ -36,7 +36,7 @@ public interface TerminalViewClient { boolean isTerminalViewSelected(); - + boolean isInputComposingDisabled(); void copyModeChanged(boolean copyMode); diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxPropertyConstants.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxPropertyConstants.java index dd935f3ab5..cb82331b61 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxPropertyConstants.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxPropertyConstants.java @@ -3,18 +3,13 @@ import com.google.common.collect.ImmutableBiMap; import com.termux.shared.termux.shell.am.TermuxAmSocketServer; import com.termux.shared.theme.NightMode; -import com.termux.shared.file.FileUtils; -import com.termux.shared.file.filesystem.FileType; import com.termux.shared.settings.properties.SharedProperties; import com.termux.shared.termux.TermuxConstants; -import com.termux.shared.logger.Logger; import com.termux.terminal.TerminalEmulator; import com.termux.view.TerminalView; -import java.io.File; import java.util.Arrays; import java.util.HashSet; -import java.util.List; import java.util.Set; /* @@ -121,6 +116,8 @@ public final class TermuxPropertyConstants { public static final String KEY_ENFORCE_CHAR_BASED_INPUT = "enforce-char-based-input"; // Default: "enforce-char-based-input" + public static final String KEY_DISABLE_INPUT_COMPOSING = "disable-input-composing"; + /** Defines the key for whether text for the extra keys buttons should be all capitalized automatically */ public static final String KEY_EXTRA_KEYS_TEXT_ALL_CAPS = "extra-keys-text-all-caps"; // Default: "extra-keys-text-all-caps" @@ -396,6 +393,7 @@ public final class TermuxPropertyConstants { KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST, KEY_ENFORCE_CHAR_BASED_INPUT, + KEY_DISABLE_INPUT_COMPOSING, KEY_EXTRA_KEYS_TEXT_ALL_CAPS, KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP, KEY_RUN_TERMUX_AM_SOCKET_SERVER, @@ -459,7 +457,8 @@ public final class TermuxPropertyConstants { */ public static final Set TERMUX_DEFAULT_TRUE_BOOLEAN_BEHAVIOUR_PROPERTIES_LIST = new HashSet<>(Arrays.asList( KEY_EXTRA_KEYS_TEXT_ALL_CAPS, - KEY_RUN_TERMUX_AM_SOCKET_SERVER + KEY_RUN_TERMUX_AM_SOCKET_SERVER, + KEY_DISABLE_INPUT_COMPOSING )); /** Defines the set for keys loaded by termux that have default inverted boolean behaviour with false as default. diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxSharedProperties.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxSharedProperties.java index e277f4506a..0d0a7cdab3 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxSharedProperties.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxSharedProperties.java @@ -598,6 +598,10 @@ public boolean isEnforcingCharBasedInput() { return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_ENFORCE_CHAR_BASED_INPUT, true); } + public boolean isInputComposingDisabled(){ + return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_INPUT_COMPOSING, true); + } + public boolean shouldExtraKeysTextBeAllCaps() { return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_EXTRA_KEYS_TEXT_ALL_CAPS, true); } diff --git a/termux-shared/src/main/java/com/termux/shared/termux/terminal/TermuxTerminalViewClientBase.java b/termux-shared/src/main/java/com/termux/shared/termux/terminal/TermuxTerminalViewClientBase.java index a4d30726ff..2f2eb9a884 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/terminal/TermuxTerminalViewClientBase.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/terminal/TermuxTerminalViewClientBase.java @@ -29,6 +29,11 @@ public boolean shouldEnforceCharBasedInput() { return false; } + @Override + public boolean isInputComposingDisabled() { + return true; + } + public boolean shouldUseCtrlSpaceWorkaround() { return false; }