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.
This commit is contained in:
agnostic-apollo
2021-06-28 11:57:12 +05:00
parent 59877a08d1
commit d3c34ad1f5

View File

@@ -760,6 +760,10 @@ public final class TerminalView extends View {
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();
@@ -966,7 +970,7 @@ public final class TerminalView extends View {
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
@@ -977,6 +981,10 @@ public final class TerminalView extends View {
mBlinkRate = blinkRate;
}
public void setEmulator(TerminalEmulator emulator) {
mEmulator = emulator;
}
public void run() {
try {
if (mEmulator != null) {