private void RestoreScreen(int sw) { if (_savedScreen[sw] == null) { ClearScreen(); // emulate new buffer return; } TerminalDocument doc = GetDocument(); int w = doc.TerminalWidth; int m = doc.TerminalHeight; GLine t = doc.TopLine; foreach (GLine l in _savedScreen[sw]) { l.ExpandBuffer(w); if (t == null) { doc.AddLine(l); } else { doc.Replace(t, l); t = l.NextLine; } if (--m == 0) { break; } } }
protected void RestoreScreen() { if (_savedScreen == null) { return; } TerminalDocument doc = GetDocument(); int w = GetConnection().TerminalWidth; int m = GetConnection().TerminalHeight; GLine t = doc.TopLine; foreach (GLine l in _savedScreen) { l.ExpandBuffer(w); if (t == null) { doc.AddLine(l); } else { doc.Replace(t, l); t = l.NextLine; } if (--m == 0) { break; } } _savedScreen = null; }