if (this._terminal.wraparoundMode) {
this._terminal.buffer.x = 0;
this._terminal.buffer.y++;
- if (this._terminal.buffer.y > this._terminal.scrollBottom) {
+ if (this._terminal.buffer.y > this._terminal.buffer.scrollBottom) {
this._terminal.buffer.y--;
this._terminal.scroll(true);
} else {
this._terminal.buffer.x = 0;
}
this._terminal.buffer.y++;
- if (this._terminal.buffer.y > this._terminal.scrollBottom) {
+ if (this._terminal.buffer.y > this._terminal.buffer.scrollBottom) {
this._terminal.buffer.y--;
this._terminal.scroll();
}
}
row = this._terminal.buffer.y + this._terminal.buffer.ybase;
- j = this._terminal.rows - 1 - this._terminal.scrollBottom;
+ j = this._terminal.rows - 1 - this._terminal.buffer.scrollBottom;
j = this._terminal.rows - 1 + this._terminal.buffer.ybase - j + 1;
while (param--) {
// this.maxRange();
this._terminal.updateRange(this._terminal.buffer.y);
- this._terminal.updateRange(this._terminal.scrollBottom);
+ this._terminal.updateRange(this._terminal.buffer.scrollBottom);
}
/**
}
row = this._terminal.buffer.y + this._terminal.buffer.ybase;
- j = this._terminal.rows - 1 - this._terminal.scrollBottom;
+ j = this._terminal.rows - 1 - this._terminal.buffer.scrollBottom;
j = this._terminal.rows - 1 + this._terminal.buffer.ybase - j;
while (param--) {
// this.maxRange();
this._terminal.updateRange(this._terminal.buffer.y);
- this._terminal.updateRange(this._terminal.scrollBottom);
+ this._terminal.updateRange(this._terminal.buffer.scrollBottom);
}
/**
public scrollUp(params: number[]): void {
let param = params[0] || 1;
while (param--) {
- this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.scrollTop, 1);
- this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.scrollBottom, 0, this._terminal.blankLine());
+ this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollTop, 1);
+ this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollBottom, 0, this._terminal.blankLine());
}
// this.maxRange();
- this._terminal.updateRange(this._terminal.scrollTop);
- this._terminal.updateRange(this._terminal.scrollBottom);
+ this._terminal.updateRange(this._terminal.buffer.scrollTop);
+ this._terminal.updateRange(this._terminal.buffer.scrollBottom);
}
/**
public scrollDown(params: number[]): void {
let param = params[0] || 1;
while (param--) {
- this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.scrollBottom, 1);
- this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.scrollTop, 0, this._terminal.blankLine());
+ this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollBottom, 1);
+ this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollTop, 0, this._terminal.blankLine());
}
// this.maxRange();
- this._terminal.updateRange(this._terminal.scrollTop);
- this._terminal.updateRange(this._terminal.scrollBottom);
+ this._terminal.updateRange(this._terminal.buffer.scrollTop);
+ this._terminal.updateRange(this._terminal.buffer.scrollBottom);
}
/**
public tabClear(params: number[]): void {
let param = params[0];
if (param <= 0) {
- delete this._terminal.tabs[this._terminal.buffer.x];
+ delete this._terminal.buffer.tabs[this._terminal.buffer.x];
} else if (param === 3) {
- this._terminal.tabs = {};
+ this._terminal.buffer.tabs = {};
}
}
case 1047: // alt screen buffer
if (!this._terminal.normal) {
let normal = {
- scrollTop: this._terminal.scrollTop,
- scrollBottom: this._terminal.scrollBottom,
- tabs: this._terminal.tabs
- // XXX save charset(s) here?
- // charset: this._terminal.charset,
- // glevel: this._terminal.glevel,
- // charsets: this._terminal.charsets
+ scrollBottom: this._terminal.buffer.scrollBottom,
};
this._terminal.buffers.activateAltBuffer();
}
; // FALL-THROUGH
case 47: // normal screen buffer
case 1047: // normal screen buffer - clearing it first
- if (this._terminal.normal) {
- this._terminal.scrollTop = this._terminal.normal.scrollTop;
- this._terminal.scrollBottom = this._terminal.normal.scrollBottom;
- this._terminal.tabs = this._terminal.normal.tabs;
- this._terminal.normal = null;
- // Ensure the selection manager has the correct buffer
- this._terminal.selectionManager.setBuffer(this._terminal.buffer.lines);
- // if (params === 1049) {
- // this.x = this.savedX;
- // this.y = this.savedY;
- // }
- this._terminal.buffers.activateNormalBuffer();
- this._terminal.refresh(0, this._terminal.rows - 1);
- this._terminal.viewport.syncScrollArea();
- this._terminal.showCursor();
- }
+ // Ensure the selection manager has the correct buffer
+ this._terminal.buffers.activateNormalBuffer();
+ this._terminal.selectionManager.setBuffer(this._terminal.buffer.lines);
+ this._terminal.refresh(0, this._terminal.rows - 1);
+ this._terminal.viewport.syncScrollArea();
+ this._terminal.showCursor();
break;
}
}
this._terminal.applicationKeypad = false; // ?
this._terminal.viewport.syncScrollArea();
this._terminal.applicationCursor = false;
- this._terminal.scrollTop = 0;
- this._terminal.scrollBottom = this._terminal.rows - 1;
+ this._terminal.buffer.scrollTop = 0;
+ this._terminal.buffer.scrollBottom = this._terminal.rows - 1;
this._terminal.curAttr = this._terminal.defAttr;
this._terminal.buffer.x = this._terminal.buffer.y = 0; // ?
this._terminal.charset = null;
*/
public setScrollRegion(params: number[]): void {
if (this._terminal.prefix) return;
- this._terminal.scrollTop = (params[0] || 1) - 1;
- this._terminal.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;
+ this._terminal.buffer.scrollTop = (params[0] || 1) - 1;
+ this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;
this._terminal.buffer.x = 0;
this._terminal.buffer.y = 0;
}
this.cursorHidden = false;
this.convertEol;
this.queue = '';
+<<<<<<< HEAD
this.scrollTop = 0;
this.scrollBottom = this.rows - 1;
this.customKeyEventHandler = null;
+=======
+ this.customKeydownHandler = null;
+>>>>>>> Move `scrollTop` and `scrollBottom` into `Buffer`
this.cursorBlinkInterval = null;
// modes
this.selectionManager.setBuffer(this.buffer.lines);
}
- this.tabs;
this.setupStops();
// Store if user went browsing history in scrollback
row = this.buffer.ybase + this.rows - 1;
// subtract the bottom scroll region
- row -= this.rows - 1 - this.scrollBottom;
+ row -= this.rows - 1 - this.buffer.scrollBottom;
if (row === this.buffer.lines.length) {
// Optimization: pushing is faster than splicing when they amount to the same behavior
this.buffer.lines.splice(row, 0, this.blankLine(undefined, isWrapped));
}
- if (this.scrollTop !== 0) {
+ if (this.buffer.scrollTop !== 0) {
if (this.buffer.ybase !== 0) {
this.buffer.ybase--;
if (!this.userScrolling) {
this.buffer.ydisp = this.buffer.ybase;
}
}
- this.buffer.lines.splice(this.buffer.ybase + this.scrollTop, 1);
+ this.buffer.lines.splice(this.buffer.ybase + this.buffer.scrollTop, 1);
}
// this.maxRange();
- this.updateRange(this.scrollTop);
- this.updateRange(this.scrollBottom);
+ this.updateRange(this.buffer.scrollTop);
+ this.updateRange(this.buffer.scrollBottom);
/**
* This event is emitted whenever the terminal is scrolled.
this.buffer.x = x - 1;
}
- this.scrollTop = 0;
- this.scrollBottom = y - 1;
+ this.buffer.scrollTop = 0;
+ this.buffer.scrollBottom = y - 1;
this.charMeasure.measure();
*/
Terminal.prototype.setupStops = function(i) {
if (i != null) {
- if (!this.tabs[i]) {
+ if (!this.buffer.tabs[i]) {
i = this.prevStop(i);
}
} else {
- this.tabs = {};
+ this.buffer.tabs = {};
i = 0;
}
for (; i < this.cols; i += this.getOption('tabStopWidth')) {
- this.tabs[i] = true;
+ this.buffer.tabs[i] = true;
}
};
*/
Terminal.prototype.prevStop = function(x) {
if (x == null) x = this.buffer.x;
- while (!this.tabs[--x] && x > 0);
+ while (!this.buffer.tabs[--x] && x > 0);
return x >= this.cols
? this.cols - 1
: x < 0 ? 0 : x;
*/
Terminal.prototype.nextStop = function(x) {
if (x == null) x = this.buffer.x;
- while (!this.tabs[++x] && x < this.cols);
+ while (!this.buffer.tabs[++x] && x < this.cols);
return x >= this.cols
? this.cols - 1
: x < 0 ? 0 : x;
*/
Terminal.prototype.index = function() {
this.buffer.y++;
- if (this.buffer.y > this.scrollBottom) {
+ if (this.buffer.y > this.buffer.scrollBottom) {
this.buffer.y--;
this.scroll();
}
*/
Terminal.prototype.reverseIndex = function() {
var j;
- if (this.buffer.y === this.scrollTop) {
+ if (this.buffer.y === this.buffer.scrollTop) {
// possibly move the code below to term.reverseScroll();
// test: echo -ne '\e[1;1H\e[44m\eM\e[0m'
// blankLine(true) is xterm/linux behavior
this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, this.rows - 1, 1);
this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.blankLine(true));
- this.updateRange(this.scrollTop);
- this.updateRange(this.scrollBottom);
+ this.updateRange(this.buffer.scrollTop);
+ this.updateRange(this.buffer.scrollBottom);
} else {
this.buffer.y--;
}
* ESC H Tab Set (HTS is 0x88).
*/
Terminal.prototype.tabSet = function() {
- this.tabs[this.buffer.x] = true;
+ this.buffer.tabs[this.buffer.x] = true;
};
/**