private void CheckDiscardDocument()
        {
            if (_tag == null || _tag.Terminal.TerminalMode == TerminalMode.Application)
            {
                return;
            }

            TerminalDocument document = _tag.Document;
            int del = document.DiscardOldLines(GEnv.Options.TerminalBufferSize + _tag.Connection.TerminalHeight);

            if (del > 0)
            {
                _tag.NotifyUpdate();
                TextSelection sel = GEnv.TextSelection;
                if (sel.Owner == _tag.Pane)
                {
                    sel.ClearIfOverlapped(document.FirstLineNumber);
                }
                int newvalue = _transientScrollBarValue - del;
                if (newvalue < 0)
                {
                    newvalue = 0;
                }
                _transientScrollBarValue = newvalue;
                document.InvalidateAll();                 //本当はここまでしなくても良さそうだが念のため
            }
        }
Пример #2
0
        private void CheckDiscardDocument()
        {
            //mwg20111225
            //  ApplicationMode でも上から流れて出て行く様に変更した為、ちゃんと discard しないといけない。
            //  * それとは別に、CheckDiscardDocument を呼び出すタイミングが OnReception である事も疑問である。
            //    OnReception というよりは Document の(行数)変更時にチェックするべきではないのか?
            //    →データを 4KB 単位で受け取っている為、此方の方が呼び出される回数が少ないので妥当
            if (_session == null)
            {
                return;
            }
            //if(_session==null || _terminalMode==TerminalMode.Application) return;

            TerminalDocument document = _document;
            int del = document.DiscardOldLines(GEnv.Options.TerminalBufferSize + document.TerminalHeight);

            if (del > 0)
            {
                int newvalue = _scrollBarValues.Value - del;
                if (newvalue < 0)
                {
                    newvalue = 0;
                }
                _scrollBarValues.Value = newvalue;
                document.InvalidatedRegion.InvalidatedAll = true;                 //本当はここまでしなくても良さそうだが念のため
            }
        }
Пример #3
0
        private void CheckDiscardDocument()
        {
            if (_session == null || _terminalMode == TerminalMode.Application)
            {
                return;
            }

            TerminalDocument document = _document;
            int del = document.DiscardOldLines(GEnv.Options.TerminalBufferSize + document.TerminalHeight);

            if (del > 0)
            {
                int newvalue = _scrollBarValues.Value - del;
                if (newvalue < 0)
                {
                    newvalue = 0;
                }
                _scrollBarValues.Value = newvalue;
                document.InvalidatedRegion.InvalidatedAll = true; //本当はここまでしなくても良さそうだが念のため
            }
        }