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..f0828d1760 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java @@ -226,6 +226,11 @@ public boolean isTerminalViewSelected() { return mActivity.getTerminalToolbarViewPager() == null || mActivity.isTerminalViewSelected() || mActivity.getTerminalView().hasFocus(); } + @Override + public boolean isTerminalViewScalingDisabled() { + return mActivity.getProperties().isTerminalViewScalingDisabled(); + } + @Override 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 435c102515..4663c1dba1 100644 --- a/terminal-view/src/main/java/com/termux/view/TerminalView.java +++ b/terminal-view/src/main/java/com/termux/view/TerminalView.java @@ -187,7 +187,7 @@ public boolean onScroll(MotionEvent e, float distanceX, float distanceY) { @Override public boolean onScale(float focusX, float focusY, float scale) { - if (mEmulator == null || isSelectingText()) return true; + if (mEmulator == null || isSelectingText() || mClient.isTerminalViewScalingDisabled()) return true; mScaleFactor *= scale; mScaleFactor = mClient.onScale(mScaleFactor); return true; 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..5ac65b4123 100644 --- a/terminal-view/src/main/java/com/termux/view/TerminalViewClient.java +++ b/terminal-view/src/main/java/com/termux/view/TerminalViewClient.java @@ -36,6 +36,7 @@ public interface TerminalViewClient { boolean isTerminalViewSelected(); + boolean isTerminalViewScalingDisabled(); 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..9eee5eb5bf 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 @@ -80,6 +80,9 @@ * * - 0.18.0 (2022-06-13) * - Add `KEY_DISABLE_FILE_SHARE_RECEIVER` and `KEY_DISABLE_FILE_VIEW_RECEIVER`. + * + * - 0.19.0 (2025-01-23) + * - Add `disable-terminal-view-scaling`. */ /** @@ -98,6 +101,11 @@ public final class TermuxPropertyConstants { private static final String LOG_TAG = "TermuxPropertyConstants"; /* boolean */ + + /** Defines the key for whether terminal view scaling are enabled. */ + public static final String KEY_DISABLE_TERMINAL_VIEW_SCALING = "disable-terminal-view-scaling"; // Default: "disable-terminal-view-scaling" + + /** Defines the key for whether file share receiver of the app is enabled. */ public static final String KEY_DISABLE_FILE_SHARE_RECEIVER = "disable-file-share-receiver"; // Default: "disable-file-share-receiver" @@ -390,7 +398,8 @@ public final class TermuxPropertyConstants { * Setting this to {@code null} will make {@link SharedProperties} throw an exception. * */ public static final Set TERMUX_APP_PROPERTIES_LIST = new HashSet<>(Arrays.asList( - /* boolean */ + /* boolean */ + KEY_DISABLE_TERMINAL_VIEW_SCALING, KEY_DISABLE_FILE_SHARE_RECEIVER, KEY_DISABLE_FILE_VIEW_RECEIVER, KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, @@ -439,6 +448,7 @@ public final class TermuxPropertyConstants { * default: false */ public static final Set TERMUX_DEFAULT_FALSE_BOOLEAN_BEHAVIOUR_PROPERTIES_LIST = new HashSet<>(Arrays.asList( + KEY_DISABLE_TERMINAL_VIEW_SCALING, KEY_DISABLE_FILE_SHARE_RECEIVER, KEY_DISABLE_FILE_VIEW_RECEIVER, KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, 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..fd4fed37ae 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 @@ -573,6 +573,9 @@ public static String getVolumeKeysBehaviourInternalPropertyValueFromValue(String + public boolean isTerminalViewScalingDisabled() { + return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_TERMINAL_VIEW_SCALING, true); + } public boolean shouldAllowExternalApps() { return (boolean) getInternalPropertyValue(TermuxConstants.PROP_ALLOW_EXTERNAL_APPS, 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..c71a1f4ab7 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 @@ -12,6 +12,11 @@ public class TermuxTerminalViewClientBase implements TerminalViewClient { public TermuxTerminalViewClientBase() { } + @Override + public boolean isTerminalViewScalingDisabled() { + return false; + } + @Override public float onScale(float scale) { return 1.0f;