Skip to content

Commit

Permalink
fixes #485 Optimize screen.Clear() (#491)
Browse files Browse the repository at this point in the history
  • Loading branch information
gdamore committed Oct 11, 2021
1 parent 761abf6 commit 62f5502
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions tscreen.go
Expand Up @@ -341,13 +341,13 @@ func (t *tScreen) prepareCursorStyles() {
// via our terminal database.
if t.ti.CursorDefault != "" {
t.cursorStyles = map[CursorStyle]string{
CursorStyleDefault: t.ti.CursorDefault,
CursorStyleBlinkingBlock: t.ti.CursorBlinkingBlock,
CursorStyleSteadyBlock: t.ti.CursorSteadyBlock,
CursorStyleDefault: t.ti.CursorDefault,
CursorStyleBlinkingBlock: t.ti.CursorBlinkingBlock,
CursorStyleSteadyBlock: t.ti.CursorSteadyBlock,
CursorStyleBlinkingUnderline: t.ti.CursorBlinkingUnderline,
CursorStyleSteadyUnderline: t.ti.CursorSteadyUnderline,
CursorStyleBlinkingBar: t.ti.CursorBlinkingBar,
CursorStyleSteadyBar: t.ti.CursorSteadyBar,
CursorStyleSteadyUnderline: t.ti.CursorSteadyUnderline,
CursorStyleBlinkingBar: t.ti.CursorBlinkingBar,
CursorStyleSteadyBar: t.ti.CursorSteadyBar,
}
} else if t.ti.Mouse != "" {
t.cursorStyles = map[CursorStyle]string{
Expand All @@ -358,7 +358,6 @@ func (t *tScreen) prepareCursorStyles() {
CursorStyleSteadyUnderline: "\x1b[4 q",
CursorStyleBlinkingBar: "\x1b[5 q",
CursorStyleSteadyBar: "\x1b[6 q",

}
}
}
Expand Down Expand Up @@ -549,6 +548,18 @@ func (t *tScreen) SetStyle(style Style) {

func (t *tScreen) Clear() {
t.Fill(' ', t.style)
t.Lock()
t.clear = true
w, h := t.cells.Size()
// because we are going to clear (see t.clear) in the next cycle,
// let's also unmark the dirty bit so that we don't waste cycles
// drawing things that are already dealt with via the clear escape sequence.
for row := 0; row < h; row++ {
for col := 0; col < w; col++ {
t.cells.SetDirty(col, row, false)
}
}
t.Unlock()
}

func (t *tScreen) Fill(r rune, style Style) {
Expand Down

0 comments on commit 62f5502

Please sign in to comment.