Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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;
        }