blob: f4fd9f8ceb8797e37ce4930aefcbd98254bc78ef [file] [log] [blame]
1.32, 2014-03-04, Disable local selection in all mouse reporting modes.
* Previously we allowed "local" selection (that which happens by default in
Chrome) to stay enabled for mouse mode 1001 (report mouseup/down only). This
caused a few issues. I didn't realize at the time that emacs used this
mouseup/down positions to set an active region, which conflicts with the
local selection. You tend wind up with a confusing partial overlap of the two
selections. Additionally, with copy-on-select enabled, the mouseup event
was consumed by the terminal and never sent to the host.
This change disables local selection when we're in mode 1001. Local selection
was disabled in mode 1002, report mousedown/up/movement, which is preferred
by vi.
Our "mouse-cell-motion-trick" was all about allowing local selection in mode
1002, so that's been removed too. I doubt this preference was widely used.
The change adds the ability to use alt-click to override the current mouse
state, so that you can make a local selection even while in mode 1001/1002.
Alt was chosen as its the only modifier key which can't be sent with a
mouse event, though if you're depending on alt === meta, you'll lose
the ability to send meta-mouse sequences. If your local window manager
already maps alt-click to something, then you can add any other modifier in
addition to alt (say, alt-ctrl-mousedown) to defeat your existing binding.
1.31, 2014-03-04, Add svg based zoom detection.
* Re-implement zoom detection in terms of the currentScale property of svg
elements. This requires the svg element to be in the topmost document,
or at least not in the "about:blank" document that the scrollport creates
so it may not be perfect, but it's better than nothing.
1.30, 2014-03-04, Even better recursive "copy" fix.
* BUG=chromium:340699: Auto copy doesn't work.
Now I see why the "select bags" aren't enough. Even for the simplest case
where we're copying an on-screen selection we need to use
Terminal.prototype.copySelectionToClipboard to handle copy of wrapped lines.
This fix reverts the changes from 1.28 and 1.29 in favor of just scheduling
the copy on a timeout, which defeats the recursive copy blocker.
* Revert "Scrolling Speedups" change (which never got a distinct hterm version
number). This caused issues with selections scrolled out of the visible area.
1.29, 2014-02-14, Better recursive "copy" fix.
* BUG=chromium:340699: Auto copy doesn't work.
AFAICT, the e.clipboardData.setData call wasn't actually doing anything. The
scrollport's "select bags" were doing the right thing though, so we have that
going for us. It's likely that the recursive "copy" was required in older
versions of Chrome, but it doesn't seem to be necessary anymore.
* Fix the "Selection Copied" message from OSC 52 based copies.
1.28, 2014-02-13, Fix recursive "copy".
* BUG=chromium:340699: Auto copy doesn't work.
Use e.clipboardData.setData, rather than causing a recursive
1.27, 2014-01-28, Add fullwidth support.
* Teaches hterm about the difference between halfwidth and fullwidth characters.
1.26, 2014-01-16, Add 'user-css' preference.
* Add a 'user-css' preference, which will load a user-defined css file (by url)
into the terminal document. This could be used to load a web font, or to
style the terminal in perverse ways.
1.25, 2014-01-08, Fix DECSET 1002-while-mousedown.
* Fix an issue where DECSET 1002 failed if received while a mouse button was
* Add option to swap Ctrl-V/Ctrl-Shift-V.
1.24, 2013-12-10, Fix cursor height regression.
* Fix cursor sizing regression. syncCursorPosition_ is now only about the
position of the cursor, restyleCursor_ now sets cursor width, in addition to
height and cursor shape related stuff. Call restyleCursor_ from onResize_.
1.23, 2013-11-25, Prevent overlay focus, fix timeout tracking.
* Prevent the terminal overlay (hterm.Terminal.prototype.showOverlay) from
taking focus if it happens to get clicked.
* Fix the overlay timeout tracking to fix cases where showOverlay is called
again before the previous overlay has timed out.
1.22, 2013-11-25, Fix full-screen scroll region fix.
* hterm 1.19 attempted to ignore full-screen scroll regions, but the patch
got the variable names wrong. This fixes them.
1.21, 2013-10-31, Clear line-overflow whenever we insert characters.
* BUG=266128, Clear line-overflow state when inserting text. This keeps
us from accidentally re-using the overflow state of text that was already
visible on the line.
1.20, 2013-10-31, Ignore ECH/EL in the presence of a cursor overflow.
* BUG=232390, Ignore erase-characters and erase-in-line escapes when the cursor
has overflowed the terminal width. This deviates from xterm, but matches
gnome-terminal and other modern emulators.
1.19, 2013-10-30, Ignore full-screen vt scroll regions.
* BUG=266197, If the host attempts to set the VT scroll region to be the entire
terminal height, we remove the scroll region entirely. This lets full-screen
apps overflow into the local scrollback buffer, which makes screen and tmux
much more pleasant to use.
1.18, 2013-10-29, Implement Cursor shape change sequences.
* Implement cursor shape changes via DECSCUSR.
* Implement cursor shape changes via OSC 50 CursorShape (as described in
* Don't blink the cursor when the terminal is unfocused.
1.17, 2013-07-26, Double-click to select url-ish.
* On double-click, expand the text selection to make it easy to select URLs
or other interesting substrings.
1.16, 2013-07-25, More fix newline regression.
* 1.15 got the treatment of the areas above/below the scroll region wrong.
1.15, 2013-07-25, Fix newline regression.
* getVTScrollBottom returns the row count if there is no vt scroll region in
effect, need to read the vtScrollBottom_ property directly instead.
1.14, 2013-07-19, Fix newline in VT Scroll Region, packaged app fix.
* BUG=chromium:223140, Terminal viewer doesn't handle horizontally split curses
application correctly.
* Fix the hterm.windowType detection to not barf when hterm is used in a
Chrome packaged app.
1.13, 2013-07-17, Disable zoom warning on newer Chrome builds.
* New builds of Chrome removed document.width/height, so we're not able to use
them to detect the zoom factor. Disabled zoom detection when these properties
are missing until we have a better solution.
* Fix libdot/changelog/(version|date) resources.
* Fix jscompiler errors.
* Stop printing "CSI K", "CSI ? J", and "ESC #" sequences with bad params.
* Shell script changes to pacify BSD.
1.12, 2013-06-24, Fix zoom warning.
* Fix the browser-zoom detection so we show the zoom warning again.
1.11, 2013-06-20, Add 'send-encoding'/'receive-encoding' preferences.
* Splits 'character-encoding' into two preferences so send and receive
encodings can be set independently.
* Refactor Terminal.keyboard.onKeyDown_ to allow Ctrl+Alt+(printable) key
* Fix regression in Terminal..onPaste_.
1.10, 2013-06-20, Add 'character-encoding' preference.
* Adds a 'character-encoding' preference which can be set to 'utf-8' (default)
or 'raw'. When set to 'utf-8' hterm's behavior is unchanged from previous
versions. When set to 'raw', hterm will not attempt to decode input or
encode output.
1.9, 2013-06-19, Fix issues with shift-key and CSI sequences.
* Clear e.shiftKey in hterm_keyboard_keymap.js' sh() function so that
hterm_keyboard.js doesn't apply its own shift key munging.
1.8, 2013-05-31, overscroll fix
* BUG=chromium:245700: Call preventDefault on mousewheel events that we've
1.7, 2013-05-31, Fix onTerminalResize, dec12 pref
* Pass width and height in io.onTerminalResize again, which regressed in the
previous commit.
* BUG=245120: Add 'enable-dec12' preference, off by default, which allows the
host to control the cursor blink state via DEC private mode 12.
1.6, 2013-05-24, Track terminal size on the io object.
* This installs a default onTerminalResize handler on the hterm.Terminal.IO
object that records the most recent terminal size as io.columnCount and
io.rowCount. This gives consumers synchronous access to these values without
having to wire up the event handler themselves.
1.5, 2013-04-18, Pass shift-ctrl-L
* BUG=chromium:233008, PASS shift-ctrl-L (CrOS screen lock combo)
1.4, 2013-04-05, wipeContents fix
* BUG=chromium:226819, Handle clearing screen when not scrolled to bottom
1.3, 2013-04-04, Keyboard fixes
* BUG=chromium:174410, Fix to allow Alt-Backspace to send Meta-Backspace
* BUG=chromium:226752, Don't trap media keys (e.g. Mute) by default.
1.2, 2013-03-19, Fix bell regression.
* Fix bug that made terminal bell only ring once.
1.1, 2013-03-13, Grab bag of fixes.
* Fix base64 encoding of the bell audio.
* Break out of a parseUntilStringTerminator_ if an embedded ESC is
found (other than the one that may appear as part of a 7-bit ST),
or if the sequence has been going on for too long (measured by the
wall clock).
* BUG=chromium:191050, Map Chrome OS top-row keys to function keys.
* BUG=chromum-os:30792, beeps accumulate - leads to non stop beeping
* BUG=chromum-os:35288, scroll-on-output doesn't appear to work
* BUG=chromum-os:39645, Application keypad doesn't work properly
1.0, 2013-03-06, Initial split from Secure Shell codebase.
* Move nassh related files out into ../nassh/.
* Add hterm_resources.concat.
* Add bin/ and related concat/ lists.