Commit Graph

126 Commits

Author SHA1 Message Date
Paris
5a56849df8 Stop using binary literals. Non ES6 compatible 2016-06-10 19:02:49 +03:00
Paris
fed92ac5c8 Implement tests 2016-06-10 16:35:56 +03:00
Paris
00f4232ecc Export copied text processing to static method 2016-06-10 16:27:58 +03:00
Paris
fa1cd89aa9 Fix copying of non-breaking spaces 2016-06-10 16:17:14 +03:00
Daniel Imms
740ae96f5f Merge remote-tracking branch 'upstream/master' into 65_send_ctrl_l_r_key 2016-06-10 03:00:22 -07:00
Paris Kasidiaris
55ca998224 Merge pull request #110 from Tyriar/64_cursor_disappears_when_scrolling
Draw cursor at correct position when scrolling
2016-06-10 12:22:28 +03:00
Paris Kasidiaris
fdff1ca793 Merge pull request #107 from runarberg/fix/ctrl-or-shift-insert-copy-pasting
Allow Ctrl/Shift + insert to copy/paste on windows and linux
2016-06-10 11:57:15 +03:00
Daniel Imms
eee99f62e1 Improve scroll to work with blank lines after the cursor
This commit works fixes scrolling when there were blank lines after the cursor.
Here is what it does (blank rows are those added by running `clear`):

when increasing rows:
  if there are blank rows below the cursor:
    add a blank row to the bottom
  else if there is room in the buffer above the viewport
    scroll up
  else
    add a blank row to the bottom

when decreasing rows:
  if there are blank rows below the cursor:
    remove a blank row from the bottom
  else
    scroll down

Fixes #111
2016-06-09 21:13:48 -07:00
Daniel Imms
da9f86f1a7 Draw cursor at correct position when scrolling
Fixes #64
2016-06-09 19:59:59 -07:00
Daniel Imms
0535f9425b More escape sequence tests 2016-06-09 19:25:29 -07:00
Daniel Imms
3a866cf202 Refactor escape sequence code and add tests 2016-06-09 18:41:54 -07:00
Daniel Imms
e2aaa8d362 Jump over words with ctrl+left/right
Escape codes used: 5=ctrl, C=right, D=left

Fixes #65
2016-06-09 18:01:12 -07:00
runarberg
524db02228 Fix Ctrl/Shift + insert copy/paste
Many systems (including MS Windows and many linuxes) map `<Ctrl>` +
`<Insert>` to copy and `<Shift> + <Insert>` to paste. That serves as a
handy fallback when the more common `<Ctrl> + C` and `<Ctrl> + V`
keybindings have their default prevented to send signals to the
terminal.

Currently all keydown-events with the insert key send `\x1b[2~` to the
terminal. This commit won't send that key if either the `shiftKey` or
the `ctrlKey` are present. Instead it will enable `contentEditable` to
allow for pasting.
2016-06-09 13:45:02 +00:00
Paris Kasidiaris
cf9d2348a1 Merge pull request #97 from Tyriar/redundant_resize
Don't resize when unnecessary
2016-06-09 10:53:16 +03:00
Daniel Imms
df268ad5cd Fix buffer corruption after resizing rows
Lines from the buffer were incorrectly being removed when the viewport was
resized. This change removes the lines when the cursor is above them, if not it
shifts the viewport down. Some basic jsdoc comments were added to some Terminal
properties for future reference.

Fixes #98
Fixes #99
2016-06-08 19:08:32 -07:00
Daniel Imms
e721bdc9f0 Don't resize when unnecessary 2016-06-08 17:38:34 -07:00
TDaglis
6bc1881727 Fix emission of terminal focus&blur events 2016-06-07 13:58:00 +03:00
Paris Kasidiaris
180a7af75d Merge pull request #78 from sourcelair/drop-hidden-textarea
Drop hidden textarea for input handling
2016-06-07 09:36:44 +03:00
Paris
8754f8d895 Fix focus and blur events 2016-06-05 03:59:52 +00:00
Paris
c02cc84498 Fix cut and copy events
- Do not actually cut on cut
- Strip trailing whitespaces on copy (fix #66)
2016-06-05 06:35:33 +03:00
Paris
647216876b Add a few hacks for better paste handling across browsers 2016-06-03 11:04:46 +03:00
Paris
f3bd6145a5 Vanish selection when a key with data is being pressed 2016-06-02 13:31:38 +03:00
Paris
8fa1a46584 Handle the paste event better 2016-06-02 13:05:58 +03:00
Paris
fa7d214e78 Remove even more useless code 2016-06-02 12:35:03 +03:00
Paris
178b611b0c Remove useless methods 2016-06-02 12:27:43 +03:00
Daniel Imms
ae0f963799 Remove extra whitespace from class names
Use [].join to retain browser compatibility

Fixes #73
2016-06-02 02:17:03 -07:00
Paris
8ebfa27210 Merge branch 'master' of github.com:sourcelair/xterm.js into content-editable 2016-06-02 12:00:31 +03:00
Paris
1a3846161a Proper rendering of inverse data in default colors
Fix #57
2016-05-30 16:03:26 +00:00
Paris
bd2158613d Make all add-ons CommonJS importable
- Fix #52
- Rename `npm/nodejs project` documentation to `CommonJS environment`
2016-05-03 12:05:13 +03:00
Steven Silvester
7988f634f3 Handle focus clearing 2016-04-21 07:57:13 -05:00
Steven Silvester
a5e34e2288 Fix cursor blink 2016-04-20 15:41:33 -05:00
Steven Silvester
685bc54bf2 Use shift to reduce lines to preserve lines up to cursor 2016-04-14 06:35:44 -05:00
Alexander Olsson
6a87253d94 nodejs module definition
Allow importing xterm into  a nodejs application (for instance an electron
application, or perhaps a test environment using phantomjs which
also has a DOM),
2016-04-11 15:08:47 +02:00
Paris
6406a88ddf pointless 2016-04-08 18:10:27 +03:00
Paris
18b2a1c3b4 Handle drop event 2016-03-10 02:55:24 +02:00
Paris
58056df23d Start working on replacing textarea with contentEditable 2016-03-10 02:07:10 +02:00
TDaglis
f53f5735e1 added selection.type fallback check
for browsers that might not support Selection.isCollapsed property
2015-11-03 12:00:28 +02:00
TDaglis
7a88a4b0e9 fixed selection in firefox 2015-11-03 09:32:43 +00:00
TDaglis
369e1f4c1e exclude alt and meta keys from ctrl default case 2015-10-29 18:34:20 +02:00
TDaglis
702fd24ce8 ignore ctrl+shift characters in keydown input 2015-10-29 18:27:46 +02:00
TDaglis
cc950614c5 blur textarea on terminal blur 2015-10-26 17:13:04 +02:00
TDaglis
987f09d880 auto emit blur and focus of textarea 2015-10-26 15:07:15 +00:00
Paris Kasidiaris
d20c36dff2 Merge pull request #31 from akalipetis/hotfix/ie
Fixed IE issues with classList.add
2015-08-25 15:37:29 +03:00
Antonis Kalipetis
a523803d37 Fixed IE issues with classList.add
`classList.add` in IE does not take more than one parameter and this would not work. Split in 3 statements to fix it.
2015-08-25 14:40:00 +03:00
Antonis Kalipetis
f00d8964c2 Replaced preventDefault with cancel 2015-01-28 11:20:47 +02:00
Antonis Kalipetis
9ef6b52352 Pressing Alt + ←/→ does not interfere now with browser
Previously, when on Chrome for Windows, if default was not prevented the browser history backward/forward was triggered.

Fixes #19
2015-01-28 11:04:38 +02:00
paris
72ed03adcb Fix #14 2015-01-04 15:33:21 +02:00
paris
87979aeed4 Bind window to AMD module
- Bind window to Xterm AMD module
- Fix typo in fit addon
- Bump version to 0.24
2014-11-17 12:28:52 +02:00
paris
3f455f90d9 Fix #4 2014-09-10 11:09:23 +00:00
paris
9d00eec6c4 Fix #2 2014-08-27 09:50:09 +00:00
paris
189a556408 Moved fit into its own addon 2014-04-11 02:04:56 +00:00
paris
6e6b5dad8c fit() uses offset height and width now 2014-04-10 18:36:37 +00:00
paris
0b603952c3 Removed debugging stuff
Bumped bower version to 0.9
2014-04-10 16:04:59 +00:00
paris
96848a6425 Improved textarea handling 2014-04-10 15:08:19 +00:00
paris
0997f4398f Proper event handling
Bump bower version to 0.7
2014-04-10 14:39:17 +00:00
paris
e278837de8 Fix focus on refresh 2014-04-09 16:49:29 +00:00
paris
e572734a21 Syntax fix
Bumped bower version to 0.5
2014-04-09 15:42:37 +00:00
paris
4f2cadd6c9 Fixed paste
Bumped bower version to 0.4
2014-04-09 15:37:45 +00:00
paris
6d152ed766 Added data handling on paste
Also bumped version to 0.3 for bower
2014-04-09 14:43:43 +00:00
paris
473d45f425 Copy and Paste seem to work. 2014-04-08 09:39:27 +00:00
paris
e2c2630873 Fixed sending data when Cmd is pressed 2014-04-08 09:34:28 +00:00
paris
31161ffee8 Progress with handling copy 2014-04-08 08:44:00 +00:00
paris
782d4f9396 Removed prefix mode and select mode 2014-03-28 15:54:57 +00:00
paris
731ffe1a75 Textarea for key handling works
Copy and paste need rework.
2014-03-26 19:38:00 +00:00
paris
5fd1948b9e Started working on textarea helper 2014-03-26 18:01:52 +00:00
paris
5a9e243a14 Introduced rowContainer and insertRow
- Introduced rowContainer so as to separates lines from future
  assistive elements (like an input field to capture DOM events)
- Introduced insertRow for inserting new rows in the container
- Cleaned up a lot of —yet— useless methods.
2014-03-26 17:38:47 +00:00
paris
9c163528d9 Replaced offsetWidth with scrollWidth 2014-03-25 22:10:24 +00:00
paris
dc3946f6da Implemented Terminal.prototype.fit
Implemented fit method for Terminal objects, which:
  - Fits the terminal's columns to its parent element width
  - Fits the terminal's rows to its parent element height
2014-03-25 19:18:19 +00:00
paris
725e9423be Added resizing event 2014-03-25 17:49:07 +00:00
paris
aa288aeb99 Started documentation 2014-03-25 17:39:10 +00:00
paris
3d680e1cb7 Started implementing theming. 2014-03-24 17:56:49 +00:00
paris
7c6d4d4e3c Implemented default terminal colors in CSS 2014-03-24 17:24:12 +00:00
paris
06403fd6c8 Keyboard events are not being cancelled by default now. 2014-03-24 17:10:18 +00:00
paris
7a6fb27a53 Amended some default styling/befavior
- cursorBlink is not default from now on
- added some custom behavior in the demo
2014-03-24 16:53:33 +00:00
paris
0ae4b803cf Moved some styling from xterm.js to xterm.css 2014-03-24 16:35:10 +00:00
paris
5af18f8e48 Tiny changes 2014-03-24 16:17:33 +00:00