Skip to content

Commit

Permalink
Fix issue where cursor blinker wouldn't automatically start after ses…
Browse files Browse the repository at this point in the history
…sion 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.
  • Loading branch information
agnostic-apollo committed Jun 28, 2021
1 parent 59877a0 commit d3c34ad
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion terminal-view/src/main/java/com/termux/view/TerminalView.java
Original file line number Diff line number Diff line change
Expand Up @@ -760,6 +760,10 @@ public void updateSize() {
mEmulator = mTermSession.getEmulator();
mClient.onEmulatorSet();

// Update mTerminalCursorBlinkerRunnable inner class mEmulator on session change
if (mTerminalCursorBlinkerRunnable != null)
mTerminalCursorBlinkerRunnable.setEmulator(mEmulator);

mTopRow = 0;
scrollTo(0, 0);
invalidate();
Expand Down Expand Up @@ -966,7 +970,7 @@ private void stopTerminalCursorBlinker() {

private class TerminalCursorBlinkerRunnable implements Runnable {

private final TerminalEmulator mEmulator;
private TerminalEmulator mEmulator;
private final int mBlinkRate;

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

public void setEmulator(TerminalEmulator emulator) {
mEmulator = emulator;
}

public void run() {
try {
if (mEmulator != null) {
Expand Down

0 comments on commit d3c34ad

Please sign in to comment.