Skip to content

Commit d3c34ad

Browse files
Fix issue where cursor blinker wouldn't automatically start after session change
The reason was that mTerminalCursorBlinkerRunnable inner class mEmulator wouldn't get updated to the new mEmulator on session change and would still be using the old session's.
1 parent 59877a0 commit d3c34ad

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

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

+9-1
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,10 @@ public void updateSize() {
760760
mEmulator = mTermSession.getEmulator();
761761
mClient.onEmulatorSet();
762762

763+
// Update mTerminalCursorBlinkerRunnable inner class mEmulator on session change
764+
if (mTerminalCursorBlinkerRunnable != null)
765+
mTerminalCursorBlinkerRunnable.setEmulator(mEmulator);
766+
763767
mTopRow = 0;
764768
scrollTo(0, 0);
765769
invalidate();
@@ -966,7 +970,7 @@ private void stopTerminalCursorBlinker() {
966970

967971
private class TerminalCursorBlinkerRunnable implements Runnable {
968972

969-
private final TerminalEmulator mEmulator;
973+
private TerminalEmulator mEmulator;
970974
private final int mBlinkRate;
971975

972976
// Initialize with false so that initial blink state is visible after toggling
@@ -977,6 +981,10 @@ public TerminalCursorBlinkerRunnable(TerminalEmulator emulator, int blinkRate) {
977981
mBlinkRate = blinkRate;
978982
}
979983

984+
public void setEmulator(TerminalEmulator emulator) {
985+
mEmulator = emulator;
986+
}
987+
980988
public void run() {
981989
try {
982990
if (mEmulator != null) {

0 commit comments

Comments
 (0)