Skip to content

Commit f856ec4

Browse files
lkijewskiSimplyTheBest
authored andcommitted
🔥 merge pull request termux#4366
1 parent 794929c commit f856ec4

File tree

6 files changed

+100
-16
lines changed

6 files changed

+100
-16
lines changed

app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ public boolean isTerminalViewSelected() {
214214
return mActivity.getTerminalToolbarViewPager() == null || mActivity.isTerminalViewSelected() || mActivity.getTerminalView().hasFocus();
215215
}
216216

217+
@Override
218+
public boolean isTerminalViewScalingDisabled() {
219+
return mActivity.getProperties().isTerminalViewScalingDisabled();
220+
}
221+
217222
@Override
218223
public void copyModeChanged(boolean copyMode) {
219224
// Disable drawer while copying.

terminal-view/src/main/java/com/termux/view/TerminalView.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -205,19 +205,19 @@ public boolean onScroll(MotionEvent e, float distanceX, float distanceY) {
205205
int deltaRows = (int) (distanceY / mRenderer.mFontLineSpacing);
206206
mScrollRemainder = distanceY - deltaRows * mRenderer.mFontLineSpacing;
207207
doScroll(e, deltaRows);
208-
208+
209209
distanceX += mScrollXRemainder;
210210
int deltaCols = (int) (distanceX / mRenderer.mFontWidth);
211211
mScrollXRemainder = distanceX - deltaCols * mRenderer.mFontWidth;
212-
//mClient.logError("scrolll", distanceY, distanceX);
212+
//mClient.logError("scrolll", distanceY, distanceX);
213213
doScrollX(e, deltaCols);
214214
}
215215
return true;
216216
}
217217

218218
@Override
219219
public boolean onScale(float focusX, float focusY, float scale) {
220-
if (mEmulator == null || isSelectingText())
220+
if (mEmulator == null || isSelectingText() || mClient.isTerminalViewScalingDisabled())
221221
return true;
222222
mScaleFactor *= scale;
223223
mScaleFactor = mClient.onScale(mScaleFactor);
@@ -236,7 +236,7 @@ public boolean onFling(final MotionEvent e2, float velocityX, float velocityY) {
236236
if (mouseTrackingAtStartOfFling) {
237237
mScroller.fling(0, 0, 0, -(int) (velocityY * SCALE), 0, 0, -mEmulator.mRows / 2, mEmulator.mRows / 2);
238238
} else {
239-
//this doesn't fling in less
239+
//this doesn't fling in less
240240
mScroller.fling(0, mTopRow, 0, -(int) (velocityY * SCALE), 0, 0, -mEmulator.getScreen().getActiveTranscriptRows(), 0);
241241
}
242242
post(new Runnable() {
@@ -764,19 +764,19 @@ void doScroll(MotionEvent event, int rowsDown) {
764764
}
765765
}
766766
}
767-
767+
768768
void doScrollX(MotionEvent event, int cols) {
769769
boolean left = cols < 0;
770770
int amount = Math.abs(cols);
771771
for (int i = 0; i < amount; i++) {
772772
if (mEmulator.isMouseTrackingActive()) {
773773
sendMouseEventCode(event, left ? TerminalEmulator.MOUSE_WHEEL_LEFT : TerminalEmulator.MOUSE_WHEEL_RIGHT, true);
774774
} else if (mEmulator.isAlternateBufferActive()) {
775-
/* less is broken let me know if it works elsewhere @john-peterson
775+
/* less is broken let me know if it works elsewhere @john-peterson
776776
handleKeyCode(left ? KeyEvent.KEYCODE_DPAD_LEFT : KeyEvent.KEYCODE_DPAD_RIGHT, 0);
777777
*/
778778
} else {
779-
/*
779+
/*
780780
mTopRow = Math.min(0, Math.max(-(mEmulator.getScreen().getActiveTranscriptRows()), mTopRow + (up ? -1 : 1)));
781781
if (!awakenScrollBars())
782782
invalidate();

terminal-view/src/main/java/com/termux/view/TerminalViewClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public interface TerminalViewClient {
3333

3434
boolean isTerminalViewSelected();
3535

36+
boolean isTerminalViewScalingDisabled();
37+
3638
void copyModeChanged(boolean copyMode);
3739

3840
boolean onKeyDown(int keyCode, KeyEvent e, TerminalSession session);

termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxPropertyConstants.java

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,18 @@
8383
* - 0.18.5 (2022-08-18)
8484
* - Add `KEY_ACTIVITY_FINISH_REMOVE_TASK`.
8585
* - Add `KEY_DISABLE_FILE_SHARE_RECEIVER` and `KEY_DISABLE_FILE_VIEW_RECEIVER`.
86-
*
86+
<<<<<<< HEAD
87+
*
8788
* - 0.19.0 (2022-11-04)
88-
* - Add `KEY_BACKGROUND_OVERLAY_COLOR` and `DEFAULT_IVALUE_BACKGROUND_OVERLAY_COLOR`
89+
* - Add `KEY_BACKGROUND_OVERLAY_COLOR` and `DEFAULT_IVALUE_BACKGROUND_OVERLAY_COLOR`.
90+
*
91+
* - 0.20.0 (2025-01-23)
92+
* - Add `KEY_DISABLE_ZOOM_SCALE`.
93+
=======
94+
*
95+
* - 0.19.0 (2025-01-23)
96+
* - Add `disable-terminal-view-scaling`.
97+
>>>>>>> 720a6499 (Added: Implement text scale disabling feature in terminal view)
8998
*/
9099
/**
91100
* A class that defines shared constants of the SharedProperties used by Termux app and its plugins.
@@ -103,6 +112,12 @@ public final class TermuxPropertyConstants {
103112
private static final String LOG_TAG = "TermuxPropertyConstants";
104113

105114
/* boolean */
115+
/**
116+
* Defines the key for whether terminal view scaling are enabled.
117+
*/
118+
// Default: "disable-terminal-view-scaling"
119+
public static final String KEY_DISABLE_TERMINAL_VIEW_SCALING = "disable-terminal-view-scaling";
120+
106121
/**
107122
* Defines the key for whether file share receiver of the app is enabled.
108123
*/
@@ -476,20 +491,73 @@ public final class TermuxPropertyConstants {
476491
* Defines the set for keys loaded by termux
477492
* Setting this to {@code null} will make {@link SharedProperties} throw an exception.
478493
*/
479-
public static final Set<String> TERMUX_APP_PROPERTIES_LIST = new HashSet<>(Arrays.asList(/* boolean */
480-
KEY_DISABLE_FILE_SHARE_RECEIVER, KEY_DISABLE_FILE_VIEW_RECEIVER, KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST, KEY_ENFORCE_CHAR_BASED_INPUT, KEY_EXTRA_KEYS_TEXT_ALL_CAPS, KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP, KEY_RUN_TERMUX_AM_SOCKET_SERVER, KEY_TERMINAL_ONCLICK_URL_OPEN, KEY_DRAW_BOLD_TEXT_WITH_BRIGHT_COLORS, KEY_USE_CTRL_SPACE_WORKAROUND, KEY_USE_FULLSCREEN, KEY_USE_FULLSCREEN_WORKAROUND, TermuxConstants.PROP_ALLOW_EXTERNAL_APPS, KEY_ACTIVITY_FINISH_REMOVE_TASK, /* int */
481-
KEY_BELL_BEHAVIOUR, KEY_DELETE_TMPDIR_FILES_OLDER_THAN_X_DAYS_ON_EXIT, KEY_TERMINAL_CURSOR_BLINK_RATE, KEY_TERMINAL_CURSOR_STYLE, KEY_TERMINAL_MARGIN_HORIZONTAL, KEY_TERMINAL_MARGIN_VERTICAL, KEY_TERMINAL_TRANSCRIPT_ROWS, /* float */
482-
KEY_TERMINAL_TOOLBAR_HEIGHT_SCALE_FACTOR, /* Integer */
483-
KEY_SHORTCUT_CREATE_SESSION, KEY_SHORTCUT_NEXT_SESSION, KEY_SHORTCUT_PREVIOUS_SESSION, KEY_SHORTCUT_RENAME_SESSION, /* String */
484-
KEY_BACK_KEY_BEHAVIOUR, KEY_DEFAULT_WORKING_DIRECTORY, KEY_EXTRA_KEYS, KEY_EXTRA_KEYS2, KEY_EXTRA_KEYS_STYLE, KEY_NIGHT_MODE, KEY_SOFT_KEYBOARD_TOGGLE_BEHAVIOUR, KEY_VOLUME_KEYS_BEHAVIOUR, KEY_BACKGROUND_OVERLAY_COLOR));
494+
public static final Set<String> TERMUX_APP_PROPERTIES_LIST = new HashSet<>(Arrays.asList(
495+
/* boolean */
496+
KEY_DISABLE_TERMINAL_VIEW_SCALING,
497+
KEY_DISABLE_FILE_SHARE_RECEIVER,
498+
KEY_DISABLE_FILE_VIEW_RECEIVER,
499+
KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS,
500+
KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST,
501+
KEY_ENFORCE_CHAR_BASED_INPUT,
502+
KEY_EXTRA_KEYS_TEXT_ALL_CAPS,
503+
KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP,
504+
KEY_RUN_TERMUX_AM_SOCKET_SERVER,
505+
KEY_TERMINAL_ONCLICK_URL_OPEN,
506+
KEY_DRAW_BOLD_TEXT_WITH_BRIGHT_COLORS,
507+
KEY_USE_CTRL_SPACE_WORKAROUND,
508+
KEY_USE_FULLSCREEN,
509+
KEY_USE_FULLSCREEN_WORKAROUND,
510+
TermuxConstants.PROP_ALLOW_EXTERNAL_APPS,
511+
KEY_ACTIVITY_FINISH_REMOVE_TASK,
512+
/* int */
513+
KEY_BELL_BEHAVIOUR,
514+
KEY_DELETE_TMPDIR_FILES_OLDER_THAN_X_DAYS_ON_EXIT,
515+
KEY_TERMINAL_CURSOR_BLINK_RATE,
516+
KEY_TERMINAL_CURSOR_STYLE,
517+
KEY_TERMINAL_MARGIN_HORIZONTAL,
518+
KEY_TERMINAL_MARGIN_VERTICAL,
519+
KEY_TERMINAL_TRANSCRIPT_ROWS,
520+
/* float */
521+
KEY_TERMINAL_TOOLBAR_HEIGHT_SCALE_FACTOR,
522+
/* Integer */
523+
KEY_SHORTCUT_CREATE_SESSION,
524+
KEY_SHORTCUT_NEXT_SESSION,
525+
KEY_SHORTCUT_PREVIOUS_SESSION,
526+
KEY_SHORTCUT_RENAME_SESSION,
527+
/* String */
528+
KEY_BACK_KEY_BEHAVIOUR,
529+
KEY_DEFAULT_WORKING_DIRECTORY,
530+
KEY_EXTRA_KEYS,
531+
KEY_EXTRA_KEYS2,
532+
KEY_EXTRA_KEYS_STYLE,
533+
KEY_NIGHT_MODE,
534+
KEY_SOFT_KEYBOARD_TOGGLE_BEHAVIOUR,
535+
KEY_VOLUME_KEYS_BEHAVIOUR,
536+
KEY_BACKGROUND_OVERLAY_COLOR
537+
));
485538

486539
/**
487540
* Defines the set for keys loaded by termux that have default boolean behaviour with false as default.
488541
* "true" -> true
489542
* "false" -> false
490543
* default: false
491544
*/
492-
public static final Set<String> TERMUX_DEFAULT_FALSE_BOOLEAN_BEHAVIOUR_PROPERTIES_LIST = new HashSet<>(Arrays.asList(KEY_DISABLE_FILE_SHARE_RECEIVER, KEY_DISABLE_FILE_VIEW_RECEIVER, KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST, KEY_ENFORCE_CHAR_BASED_INPUT, KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP, KEY_TERMINAL_ONCLICK_URL_OPEN, KEY_USE_CTRL_SPACE_WORKAROUND, KEY_USE_FULLSCREEN, KEY_USE_FULLSCREEN_WORKAROUND, KEY_ACTIVITY_FINISH_REMOVE_TASK, KEY_DRAW_BOLD_TEXT_WITH_BRIGHT_COLORS, TermuxConstants.PROP_ALLOW_EXTERNAL_APPS));
545+
public static final Set<String> TERMUX_DEFAULT_FALSE_BOOLEAN_BEHAVIOUR_PROPERTIES_LIST = new HashSet<>(Arrays.asList(
546+
KEY_DISABLE_TERMINAL_VIEW_SCALING,
547+
KEY_DISABLE_FILE_SHARE_RECEIVER,
548+
KEY_DISABLE_FILE_VIEW_RECEIVER,
549+
KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS,
550+
KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST,
551+
KEY_ENFORCE_CHAR_BASED_INPUT,
552+
KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP,
553+
KEY_TERMINAL_ONCLICK_URL_OPEN,
554+
KEY_USE_CTRL_SPACE_WORKAROUND,
555+
KEY_USE_FULLSCREEN,
556+
KEY_USE_FULLSCREEN_WORKAROUND,
557+
KEY_ACTIVITY_FINISH_REMOVE_TASK,
558+
KEY_DRAW_BOLD_TEXT_WITH_BRIGHT_COLORS,
559+
TermuxConstants.PROP_ALLOW_EXTERNAL_APPS
560+
));
493561

494562
/**
495563
* Defines the set for keys loaded by termux that have default boolean behaviour with true as default.

termux-shared/src/main/java/com/termux/shared/termux/settings/properties/TermuxSharedProperties.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,10 @@ public static String getVolumeKeysBehaviourInternalPropertyValueFromValue(String
534534
return (String) SharedProperties.getDefaultIfNotInMap(TermuxPropertyConstants.KEY_VOLUME_KEYS_BEHAVIOUR, TermuxPropertyConstants.MAP_VOLUME_KEYS_BEHAVIOUR, SharedProperties.toLowerCase(value), TermuxPropertyConstants.DEFAULT_IVALUE_VOLUME_KEYS_BEHAVIOUR, true, LOG_TAG);
535535
}
536536

537+
public boolean isTerminalViewScalingDisabled() {
538+
return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_TERMINAL_VIEW_SCALING, true);
539+
}
540+
537541
public boolean shouldAllowExternalApps() {
538542
return (boolean) getInternalPropertyValue(TermuxConstants.PROP_ALLOW_EXTERNAL_APPS, true);
539543
}

termux-shared/src/main/java/com/termux/shared/termux/terminal/TermuxTerminalViewClientBase.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ public class TermuxTerminalViewClientBase implements TerminalViewClient {
1111
public TermuxTerminalViewClientBase() {
1212
}
1313

14+
@Override
15+
public boolean isTerminalViewScalingDisabled() {
16+
return false;
17+
}
18+
1419
@Override
1520
public float onScale(float scale) {
1621
return 1.0f;

0 commit comments

Comments
 (0)