From 625ec4e8f28c1027a36611b9a70bfc5a5dc190fd Mon Sep 17 00:00:00 2001 From: lkijewski Date: Thu, 23 Jan 2025 23:47:32 +0100 Subject: [PATCH 1/2] Added: Implement zoom scale disabling feature in terminal view The user can add `disable-zoom-scale=true` entry to `termux.properties` file to disable text size scaling in terminal view. * The default value is `false`. Restarting the termux app or running the `termux-reload-settings` command will update the behavior instantaneously if changed. --- .../app/terminal/TermuxTerminalViewClient.java | 5 +++++ .../src/main/java/com/termux/view/TerminalView.java | 2 +- .../java/com/termux/view/TerminalViewClient.java | 1 + .../settings/properties/TermuxPropertyConstants.java | 12 +++++++++++- .../settings/properties/TermuxSharedProperties.java | 3 +++ .../terminal/TermuxTerminalViewClientBase.java | 5 +++++ 6 files changed, 26 insertions(+), 2 deletions(-) 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..9672d6913f 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 isZoomScaleDisabled() { + return mActivity.getProperties().isZoomScaleDisabled(); + } + @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..68aeaa1805 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.isZoomScaleDisabled()) 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..bfc1cc1f22 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 isZoomScaleDisabled(); 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..a4b1c836ec 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 `KEY_DISABLE_ZOOM_SCALE`. */ /** @@ -98,6 +101,11 @@ public final class TermuxPropertyConstants { private static final String LOG_TAG = "TermuxPropertyConstants"; /* boolean */ + + /** Defines the key for whether screen scaling are enabled. */ + public static final String KEY_DISABLE_ZOOM_SCALE = "disable-zoom-scale"; // Default: "disable-zoom-scale" + + /** 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_ZOOM_SCALE, 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_ZOOM_SCALE, 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..1b97c2a910 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 isZoomScaleDisabled() { + return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_ZOOM_SCALE, 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..1b5cb59ded 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 isZoomScaleDisabled() { + return false; + } + @Override public float onScale(float scale) { return 1.0f; From 720a6499e8c8819234f87cad262ae896b9c801aa Mon Sep 17 00:00:00 2001 From: lkijewski Date: Fri, 24 Jan 2025 00:08:08 +0100 Subject: [PATCH 2/2] Added: Implement text scale disabling feature in terminal view The user can add `disable-terminal-view-scaling=true` entry to `termux.properties` file to disable text size scaling in terminal view. * The default value is `false`. Restarting the termux app or running the `termux-reload-settings` command will update the behavior instantaneously if changed. --- .../termux/app/terminal/TermuxTerminalViewClient.java | 4 ++-- .../src/main/java/com/termux/view/TerminalView.java | 2 +- .../main/java/com/termux/view/TerminalViewClient.java | 2 +- .../settings/properties/TermuxPropertyConstants.java | 10 +++++----- .../settings/properties/TermuxSharedProperties.java | 4 ++-- .../termux/terminal/TermuxTerminalViewClientBase.java | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) 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 9672d6913f..f0828d1760 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java @@ -227,8 +227,8 @@ public boolean isTerminalViewSelected() { } @Override - public boolean isZoomScaleDisabled() { - return mActivity.getProperties().isZoomScaleDisabled(); + public boolean isTerminalViewScalingDisabled() { + return mActivity.getProperties().isTerminalViewScalingDisabled(); } 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 68aeaa1805..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() || mClient.isZoomScaleDisabled()) 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 bfc1cc1f22..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,7 +36,7 @@ public interface TerminalViewClient { boolean isTerminalViewSelected(); - boolean isZoomScaleDisabled(); + 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 a4b1c836ec..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 @@ -82,7 +82,7 @@ * - Add `KEY_DISABLE_FILE_SHARE_RECEIVER` and `KEY_DISABLE_FILE_VIEW_RECEIVER`. * * - 0.19.0 (2025-01-23) - * - Add `KEY_DISABLE_ZOOM_SCALE`. + * - Add `disable-terminal-view-scaling`. */ /** @@ -102,8 +102,8 @@ public final class TermuxPropertyConstants { /* boolean */ - /** Defines the key for whether screen scaling are enabled. */ - public static final String KEY_DISABLE_ZOOM_SCALE = "disable-zoom-scale"; // Default: "disable-zoom-scale" + /** 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" @@ -399,7 +399,7 @@ public final class TermuxPropertyConstants { * */ public static final Set TERMUX_APP_PROPERTIES_LIST = new HashSet<>(Arrays.asList( /* boolean */ - KEY_DISABLE_ZOOM_SCALE, + KEY_DISABLE_TERMINAL_VIEW_SCALING, KEY_DISABLE_FILE_SHARE_RECEIVER, KEY_DISABLE_FILE_VIEW_RECEIVER, KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, @@ -448,7 +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_ZOOM_SCALE, + 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 1b97c2a910..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,8 +573,8 @@ public static String getVolumeKeysBehaviourInternalPropertyValueFromValue(String - public boolean isZoomScaleDisabled() { - return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_ZOOM_SCALE, true); + public boolean isTerminalViewScalingDisabled() { + return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_TERMINAL_VIEW_SCALING, true); } public boolean shouldAllowExternalApps() { 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 1b5cb59ded..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 @@ -13,7 +13,7 @@ public TermuxTerminalViewClientBase() { } @Override - public boolean isZoomScaleDisabled() { + public boolean isTerminalViewScalingDisabled() { return false; }