Load new 3B attribute and cursor styles

cpsdqs/unified-input
cpsdqs 7 years ago
parent cbc21e9e3b
commit 72069d2219
  1. 36
      jssrc/term_screen.js

@ -61,6 +61,7 @@ class TermScreen {
bg: 0,
attrs: 0,
blinkOn: false,
blinking: true,
visible: true,
hanging: false,
style: 'block',
@ -453,7 +454,9 @@ class TermScreen {
this.cursor.blinkOn = true;
clearInterval(this.cursor.blinkInterval);
this.cursor.blinkInterval = setInterval(() => {
this.cursor.blinkOn = !this.cursor.blinkOn;
this.cursor.blinkOn = this.cursor.blinking
? !this.cursor.blinkOn
: true;
this.scheduleDraw();
}, 500);
}
@ -653,16 +656,17 @@ class TermScreen {
bg = -2
}
let cellDidChange = text !== this.drawnScreen[cell] ||
let needsUpdate = text !== this.drawnScreen[cell] ||
fg !== this.drawnScreenFG[cell] ||
bg !== this.drawnScreenBG[cell] ||
attrs !== this.drawnScreenAttrs[cell];
attrs !== this.drawnScreenAttrs[cell] ||
isCursor;
let font = attrs & FONT_MASK;
if (!fontGroups.has(font)) fontGroups.set(font, []);
fontGroups.get(font).push([cell, x, y, text, fg, bg, attrs, isCursor]);
updateMap.set(cell, cellDidChange);
updateMap.set(cell, needsUpdate);
}
for (let font of fontGroups.keys()) {
@ -777,6 +781,30 @@ class TermScreen {
let trackMouseClicks = !!(attributes & (1 << 5));
let trackMouseMovement = !!(attributes & (1 << 6));
let cursorShape = (attributes >> 9 & 0b111)
if (cursorShape === 1) {
this.cursor.style = 'block'
if (!this.cursor.blinking) {
this.cursor.blinking = true;
this.resetCursorBlink();
}
} else {
if (cursorShape > 0) cursorShape--
let cursorStyle = cursorShape >> 1
let cursorBlinking = !(cursorShape & 1)
if (cursorStyle === 0) this.cursor.style = 'block'
else if (cursorStyle === 1) this.cursor.style = 'line'
else if (cursorStyle === 2) this.cursor.style = 'bar'
if (this.cursor.blinking !== cursorBlinking) {
this.cursor.blinking = cursorBlinking;
this.resetCursorBlink();
}
}
Input.setMouseMode(trackMouseClicks, trackMouseMovement);
this.selection.selectable = !trackMouseMovement;
$(this.canvas).toggleClass('selectable', !trackMouseMovement);

Loading…
Cancel
Save