Commit Graph
78 Commits
Author SHA1 Message Date
Daniel Imms 588d3b12e0 Disable onScroll event during application mode
Fixes #235
2016-08-19 12:52:13 -07:00
Daniel Imms c24ae84b00 Fix tests 2016-08-12 10:27:49 -07:00
Daniel Imms 92605a9734 Reposition textview after composition view
Call the function again via setTimeout to allow changes after composition
events. This prevents the IME windows jumping sometimes on thesecond key
press.

Fixes #208
2016-08-12 10:21:41 -07:00
Daniel Imms e60513f554 Fix outline showing up when clicking terminal 2016-08-08 10:22:34 -07:00
Daniel Imms a557a82b40 Fix scrollbar being transparent on OS X 2016-08-08 10:22:19 -07:00
Daniel Imms 2c9c95f531 Add another test 2016-08-04 18:56:33 -07:00
Daniel Imms 7048f6edf7 Add some tests, fix app keypad mode bug 2016-08-04 18:34:04 -07:00
Daniel Imms 0a34885fbc Fix line-height after rowContainer moved out of viewport 2016-08-03 18:27:43 -07:00
Daniel Imms 61201525a8 Remaining jsdoc 2016-08-03 18:27:19 -07:00
Daniel Imms 1b886a4420 Disable the scroll bar when in application keypad mode 2016-08-03 18:12:44 -07:00
Daniel Imms 06ca03ae9c Get it working 2016-08-02 18:36:24 -07:00
Daniel Imms ff927b8e79 Implement basic scroll bar 2016-08-02 16:59:50 -07:00
Daniel Imms 670b0d58c7 Add base viewport, set line height
Fixes #149
2016-08-02 12:42:13 -07:00
Daniel Imms e2d0de2686 Fix test 2016-07-22 05:18:28 -07:00
Daniel Imms 495b2d7fbb Merge remote-tracking branch 'upstream/master' into 118_support_custom_keydown_handler 2016-07-22 05:12:52 -07:00
Daniel Imms 892db98c96 Correct blur/focus delegation
Focus and blur events on the Terminal object are delegated to the textarea
which handles everything.
2016-07-22 04:14:05 -07:00
Daniel Imms 9dd64dfb49 Switch linkify for fit in readme
Linkify doesn't work currently so it shouldn't be used as an example.
2016-07-15 16:41:40 -07:00
Daniel Imms 0010a5a109 Explicitly return from keydown 2016-07-15 16:33:30 -07:00
Daniel Imms 9cb5b005bb Add tests 2016-07-15 16:31:57 -07:00
Daniel Imms 06a3aa6cf8 Merge remote-tracking branch 'upstream/master' into 118_support_custom_keydown_handler 2016-07-15 16:21:06 -07:00
Daniel Imms d4e9d34d2d Allow custom keydown handler to be attached
Fixes #118
2016-07-15 16:16:37 -07:00
Daniel Imms a3a7017f6b Fix tests 2016-07-15 10:22:31 -07:00
Daniel Imms fedc1fd325 Fix keydown conditional 2016-07-15 10:17:29 -07:00
Daniel Imms 11d5f51e67 Merge remote-tracking branch 'upstream/master' into 124_add_textarea_back 2016-07-15 10:13:56 -07:00
Daniel Imms 2c810ce763 Add note about support intentions 2016-07-15 10:12:55 -07:00
Daniel Imms b61e81d5b4 Add latest Edge version as supported, alphabetize 2016-07-15 10:10:10 -07:00
Daniel Imms 534a9e7f5a Big clean up
Move keydown event to CompositionHelper
Move call in refresh to be handled with an event
2016-07-13 21:50:00 -07:00
Daniel Imms 14a62c0f8b Add test cases for Japanese 2016-07-13 21:22:27 -07:00
Daniel Imms 89d29bbc10 Fix non-composition char input after composition char + test 2016-07-13 21:02:43 -07:00
Daniel Imms ac8db6e8ec jsdoc handleAnyTextareaChanges 2016-07-13 20:52:55 -07:00
Daniel Imms 0a7c1bfd98 Position the textarea below the cursor during a composition
This will position any IME helper in the correct position
2016-07-13 20:46:43 -07:00
Daniel Imms 4efb8d24ac Don't wrap multi-character compositions 2016-07-13 20:34:55 -07:00
Daniel Imms 38d08873bc Don't finalize composition on modifier key presses 2016-07-13 20:34:43 -07:00
Daniel Imms 8074d754d3 Only position composition view if a cursor is visible 2016-07-13 20:12:49 -07:00
Daniel Imms e1c1b07a0b Add test cases for Korean 2016-07-13 08:37:24 -07:00
Daniel Imms c18794f202 Merge remote-tracking branch 'upstream/master' into 124_add_textarea_back 2016-07-13 07:14:14 -07:00
Daniel Imms 8b46e84263 Use correct .terminal-cursor for composition view 2016-07-12 21:42:10 -07:00
Daniel Imms 237e6819bf Fix tests 2016-07-12 20:55:24 -07:00
Daniel Imms 8faea59e31 Handle non-composition input when IME is active 2016-07-12 20:51:55 -07:00
Daniel Imms cab79c473f jsdoc and tidy up 2016-07-12 20:26:18 -07:00
Daniel Imms c656ed04b0 Use handler not write, fix other edge cases 2016-07-12 20:19:26 -07:00
Daniel Imms 29000fb79e Refactor into CompositionHelper object 2016-07-12 19:14:56 -07:00
Daniel Imms 03fa017d4a Re-hide the textarea 2016-07-12 18:49:37 -07:00
Daniel Imms 26af6ffd4d Get IMEs working 2016-07-12 18:48:08 -07:00
Daniel Imms 7d8e28a7dd Merge remote-tracking branch 'upstream/master' into 124_add_textarea_back 2016-07-12 17:02:11 -07:00
Daniel Imms a52b7e7a4e Add starting point for IME support 2016-07-12 16:50:07 -07:00
Daniel Imms aaedcfc700 Support focus class on the .xterm element 2016-07-12 16:18:05 -07:00
Daniel Imms fc7b22dc48 Manually revert textarea changes 2016-07-12 16:03:31 -07:00
Daniel Imms 838c11b69c Have ' ' chars get inserted correctly after a resize
Since the character spec didn't contain a character width it was being skipped
during refresh.

Fixes #159
2016-07-04 13:17:08 -07:00
Daniel Imms 05041722f1 Correct if condition 2016-07-04 12:15:47 -07:00
Daniel Imms 87c9370e8c Fix exception when increasing size when viewport is at top of buffer
Fixes #154
2016-06-30 02:05:06 -07:00
Daniel Imms 15cf76c767 Bind to 127.0.0.1 on Windows only 2016-06-22 20:43:41 -07:00
Daniel Imms 3df272fb92 Merge remote-tracking branch 'upstream/master' into windows_demo 2016-06-22 20:36:05 -07:00
Daniel Imms 2aab58473e Fix npm scripts 2016-06-16 16:31:01 -07:00
Daniel Imms 5d3bac6a86 Merge remote-tracking branch 'upstream/master' into windows_demo 2016-06-16 16:28:20 -07:00
Daniel Imms af29effbf3 Allow refresh to execute 30 times a second maximum
For commands that pass a significant amount of output to the write function,
this prevents the terminal maxing out the CPU and making the UI unresponsive.
While commands can still run beyond what they do on the terminal, it is far
better with a debounce in place as every single terminal manipulation does not
need to be constructed in the DOM.

A side-effect of this is that it makes ^C to interrupt a process seem more
responsive.

Fixes #127
Fixes #126
2016-06-13 12:40:56 -07:00
Daniel Imms fd5be55d81 Add some jsdoc for important functions
Part of #13
2016-06-10 20:05:26 -07:00
Daniel Imms e0c0fb6917 Add basic options selection to demo
This will make it easier to test options without needing to modify the demo.
2016-06-10 19:15:58 -07:00
Daniel Imms f2f0f460c4 Add a bunch of tests 2016-06-10 18:53:32 -07:00
Daniel Imms 08928d8b8e Merge remote-tracking branch 'upstream/master' into linkify_ip_addr 2016-06-10 18:08:39 -07:00
Daniel Imms cb4728f8f5 Tidy up code 2016-06-10 18:05:24 -07:00
Daniel Imms 4a71a41380 Fix cursor blinking when enabled
Fixes #119
2016-06-10 18:05:13 -07:00
Daniel Imms 9c3b1105e2 Check optional port clause after domain too 2016-06-10 13:15:59 -07:00
Daniel Imms edf897182e Bound refresh max rows to this.rows not this.lines
this.row is the size of rows in the viewport, this.lines is the buffer. It's
only possible to refresh `0` to `this.rows - 1`.

Fixes #86
2016-06-10 13:08:43 -07: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
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 c86fd87819 Add tests for F-keys 2016-06-09 19:00:40 -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
Daniel Imms 7a80efd8bd Don't crash demo server on refresh
Fixes #100
2016-06-08 19:28:55 -07: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
Daniel Imms 2a36ff0839 Merge remote-tracking branch 'upstream/master' into patch-2 2016-06-07 23:34:35 -07:00
Daniel Imms 23cfa3d824 Add IP addresses to linkify
Fixes #91
2016-06-07 22:12:38 -07:00
Daniel Imms 289ff8092d Add demo section to README
Fixes #87
2016-06-07 17:08:37 -07: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