New issue
Advanced search Search tips

Issue 740607 link

Starred by 0 users

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature



Sign in to add a comment

hterm: if vt scroll region top is set to 0, append new rows to scrollback

Project Member Reported by vapier@chromium.org, Jul 10 2017

Issue description

currently, if a vt scroll region is active (DECSTBM), and the region is not the entire screen, we disable appending new rows to the scrollback buffer.
hterm_terminal.js:
 hterm.Terminal.prototype.setVTScrollRegion
  - only sets scroll top/bottom if it's smaller than the current terminal
 hterm.Terminal.prototype.newLine
  - if scroll region is active, do not append any rows

for programs (like screen) which allow for a static banner at the bottom of the screen, this disables scrollback appending for them too.  we could enhance the logic so that, if this.vtScrollTop_ is 0, we append the first row to the scrollback.

  if (this.vtScrollBottom_ != null) {
    // A VT Scroll region is active, we never append new rows.
    if (this.screen_.cursorPosition.row == this.vtScrollBottom_) {
--> append row here
      // We're at the end of the VT Scroll Region, perform a VT scroll.
      this.vtScrollUp(1);

we'll have to rework some of the existing logic as appendRows assumes a vt scroll region is not active, and vtScrollUp just clears/recycles nodes.

this new logic wouldn't work if you had a program where the top row is the status line, but there isn't much we can do at that point as we can't differentiate between a region like [1, height - 1] and [3, 5] or something.
 

Comment 1 by vapier@chromium.org, Jul 10 2017

rginda@ agrees that we can append scrollback when the vt scroll region starts at 0

Comment 2 Deleted

Comment 3 Deleted

Sign in to add a comment