From b8da7357b00c9fb11c48ed697972f284d182feae Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 31 Jul 2017 22:48:17 -0400 Subject: adjust textcache purge --- ShiftOS.Frontend/Apps/Terminal.cs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'ShiftOS.Frontend/Apps') diff --git a/ShiftOS.Frontend/Apps/Terminal.cs b/ShiftOS.Frontend/Apps/Terminal.cs index 5cf899f..a3c5eac 100644 --- a/ShiftOS.Frontend/Apps/Terminal.cs +++ b/ShiftOS.Frontend/Apps/Terminal.cs @@ -23,6 +23,13 @@ namespace ShiftOS.Frontend.Apps { private TerminalControl _terminal = null; + public TerminalControl TerminalControl + { + get + { + return _terminal; + } + } public Terminal() { @@ -139,6 +146,19 @@ namespace ShiftOS.Frontend.Apps protected void RecalculateLayout() { + using(var gfx = Graphics.FromImage(new Bitmap(1, 1))) + { + var cloc = GetPointAtIndex(gfx); + var csize = gfx.MeasureString("#", new Font(LoadedSkin.TerminalFont.Name, LoadedSkin.TerminalFont.Size * _zoomFactor, LoadedSkin.TerminalFont.Style)); + if(cloc.Y - _vertOffset < 0) + { + _vertOffset += cloc.Y - _vertOffset; + } + while((cloc.Y + csize.Height) - _vertOffset > Height) + { + _vertOffset += csize.Height; + } + } } private bool blinkStatus = false; @@ -376,12 +396,12 @@ namespace ShiftOS.Frontend.Apps cursorPos.X = lineMeasure.X; } - gfx.DrawRectangle((int)cursorPos.X, (int)cursorPos.Y, (int)cursorSize.X, (int)cursorSize.Y, LoadedSkin.TerminalForeColorCC.ToColor().ToMonoColor()); + gfx.DrawRectangle((int)cursorPos.X, (int)(cursorPos.Y - _vertOffset), (int)cursorSize.X, (int)cursorSize.Y, LoadedSkin.TerminalForeColorCC.ToColor().ToMonoColor()); } //Draw the text - gfx.DrawString(Text, 2, 2, LoadedSkin.TerminalForeColorCC.ToColor().ToMonoColor(), font, Width - 4); + gfx.DrawString(Text, 0, (int)(0 - _vertOffset), LoadedSkin.TerminalForeColorCC.ToColor().ToMonoColor(), font, Width - 4); } } -- cgit v1.2.3