Fixed various rendering glitches reported by Phil Endecott of Anyterm (http://anyterm.org) fame.

git-svn-id: https://shellinabox.googlecode.com/svn/trunk@57 0da03de8-d603-11dd-86c2-0f8696b7b6f9
This commit is contained in:
zodiac 2009-02-09 00:13:48 +00:00
parent 75c09f9f83
commit ef921b0ba2
3 changed files with 10 additions and 6 deletions

View file

@ -184,7 +184,7 @@ clean-local:
-e d "$<"`" \
-e "s/^#/\/\/ #/" \
-e "s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \
\
objcopy \
-I binary `echo $(host_cpu) | \
grep -q '^i[0-9]86$$' && \
echo ' -O elf32-i386 -B i386' || \

View file

@ -1075,7 +1075,7 @@ clean-local:
-e d "$<"`" \
-e "s/^#/\/\/ #/" \
-e "s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \
\
objcopy \
-I binary `echo $(host_cpu) | \
grep -q '^i[0-9]86$$' && \
echo ' -O elf32-i386 -B i386' || \

View file

@ -1183,7 +1183,8 @@ VT100.prototype.clearRegion = function(x, y, w, h, style) {
// not have a scrollback buffer. In that case, we should just remove all
// child nodes.
if (!this.numScrollbackLines &&
w == this.terminalWidth && h == this.terminalHeight) {
w == this.terminalWidth && h == this.terminalHeight &&
!style) {
var console = this.console[this.currentScreen];
while (console.lastChild) {
console.removeChild(console.lastChild);
@ -1344,7 +1345,8 @@ VT100.prototype.scrollRegion = function(x, y, w, h, incX, incY, style) {
if (this.numScrollbackLines > 0 ||
console.childNodes.length > this.numScrollbackLines+y+h+incY) {
for (var i = -incY; i-- > 0; ) {
this.insertBlankLine(this.numScrollbackLines + y + h + incY);
this.insertBlankLine(this.numScrollbackLines + y + h + incY,
style);
}
}
}
@ -1356,7 +1358,7 @@ VT100.prototype.scrollRegion = function(x, y, w, h, incX, incY, style) {
console.removeChild(console.childNodes[this.numScrollbackLines+y+h]);
}
for (var i = incY; i--; ) {
this.insertBlankLine(this.numScrollbackLines + y);
this.insertBlankLine(this.numScrollbackLines + y, style);
}
}
} else {
@ -1666,7 +1668,7 @@ VT100.prototype.handleKey = function(event) {
case 9: /* Tab */ ch = '\u0009'; break;
case 10: /* Return */ ch = '\u000A'; break;
case 13: /* Enter */ ch = this.crLfMode ?
'\r\n' : '\n'; break;
'\r\n' : '\r'; break;
case 16: /* Shift */ return;
case 17: /* Ctrl */ return;
case 18: /* Alt */ return;
@ -2304,6 +2306,8 @@ VT100.prototype.setMode = function(state) {
case 9: this.mouseReporting = state; break;
case 25: if (state) { this.showCursor(); }
else { this.hideCursor(); } break;
case 1047:
case 1049:
case 47: this.enableAlternateScreen(state); break;
default: break;
}