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(); //本当はここまでしなくても良さそうだが念のため } }
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; //本当はここまでしなくても良さそうだが念のため } }
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; //本当はここまでしなくても良さそうだが念のため } }