1
0
mirror of https://github.com/kepler155c/opus synced 2025-10-16 16:27:39 +00:00

scrolling term

This commit is contained in:
kepler155c@gmail.com
2019-02-11 20:25:12 -05:00
parent d769b35672
commit 2d411df7d1
3 changed files with 33 additions and 11 deletions

View File

@@ -63,15 +63,15 @@ function Terminal.window(parent, sx, sy, w, h, isVisible)
function win.clear()
canvas.offy = 0
canvas:clear(bg, fg)
for i = #canvas.lines, canvas.height + 1, -1 do
canvas.lines[i] = nil
end
canvas:clear(bg, fg)
update()
end
function win.clearLine()
canvas:clearLine(cy, bg, fg)
canvas:clearLine(cy + canvas.offy, bg, fg)
win.setCursorPos(cx, cy)
update()
end
@@ -127,15 +127,15 @@ function Terminal.window(parent, sx, sy, w, h, isVisible)
function win.scroll(n)
n = n or 1
if n > 0 then
for _ = 1, n do
canvas.lines[#canvas.lines + 1] = { }
canvas:clearLine(#canvas.lines, bg, fg)
local lines = #canvas.lines
for i = 1, n do
canvas.lines[lines + i] = { }
canvas:clearLine(lines + i, bg, fg)
end
while #canvas.lines > maxScroll do
table.remove(canvas.lines, 1)
end
scrollTo(#canvas.lines - canvas.height)
canvas.offy = #canvas.lines - canvas.height
scrollTo(#canvas.lines)
canvas:dirty()
update()
end