Wez Furlong
6991f5c6e0
fixup rendering of wide and color glyphs
2018-02-17 08:19:01 -08:00
Wez Furlong
cbad708398
the glyphs now have the correct proportions
2018-02-17 07:37:06 -08:00
Wez Furlong
9c4d26827e
draw ghostly looking glyphs
2018-02-17 07:23:59 -08:00
Wez Furlong
c8a58cac06
we now render useless blocks in the fg color via gl
2018-02-16 23:28:51 -08:00
Wez Furlong
20965e786f
start hacking on OpenGL ES2 rendering
2018-02-16 21:44:56 -08:00
Wez Furlong
20f4b21f13
add some more tests
2018-02-12 08:25:31 -08:00
Wez Furlong
28179ff981
check negative value for ECH, too
2018-02-12 08:15:35 -08:00
Wez Furlong
438822d63b
add ECH handling
2018-02-12 07:57:22 -08:00
Wez Furlong
09f481e753
avoid ambiguous true color csi SGR sequence
2018-02-12 07:40:35 -08:00
Wez Furlong
ad3524bfc8
run down an off-by-one in VPA handling
...
This manifested with vim-inside-tmux losing my top tmux status line.
Add a test!
2018-02-11 23:56:42 -08:00
Wez Furlong
0870e6c7e4
tweak comments and error printing around OSC
2018-02-11 22:29:21 -08:00
Wez Furlong
6fb12c3520
add test for reverse index
2018-02-11 21:58:53 -08:00
Wez Furlong
18990a24b4
Basic tab stops
2018-02-11 21:54:18 -08:00
Wez Furlong
4c087d32c1
add NEL sequence and test
2018-02-11 20:56:05 -08:00
Wez Furlong
e6fdd4140b
add more tests
2018-02-11 20:46:59 -08:00
Wez Furlong
236960e1a8
squeeze one extra row in at the bottom of my screen
2018-02-11 18:54:18 -08:00
Wez Furlong
5e49a79705
fix a selection range issue
...
When dragging a multi-line selection down and to the left, we were
incorrectly setting the computed column range.
Add a test and fix it.
2018-02-11 18:35:58 -08:00
Wez Furlong
2ee0414b66
avoid panic when dragging onto partial rows/columns
2018-02-11 18:09:48 -08:00
Wez Furlong
d0de936f62
add some tests for a double-width selection bug
2018-02-11 17:56:49 -08:00
Wez Furlong
adc11f303a
Add some tests for hyperlink parsing and handling
2018-02-11 13:48:51 -08:00
Wez Furlong
ac339f9258
refactor term tests to make it less repeaty
2018-02-11 13:01:36 -08:00
Wez Furlong
0ae6b3e753
use xdg-open to open links on click
2018-02-11 12:41:31 -08:00
Wez Furlong
21f0e3fd98
Recognize clicks on hyperlinks
...
There's plumbing for handling these events in the TerminalHost
trait, but we don't do anything beyond printing them at the moment.
2018-02-11 12:28:37 -08:00
Wez Furlong
b6aa2cffea
make hyperlinks show underlined on hover
...
Adds some plumbing to track the current mouse position and
extract the hyperlink from the cell that is being hovered over.
We render those cells with underline, possibly in a different color.
We don't yet do anything on click.
2018-02-11 12:11:02 -08:00
Wez Furlong
1546c2ef0b
avoid constructing a vec in the common answerback code path
2018-02-11 09:44:04 -08:00
Wez Furlong
7ad2468937
hide AnswerBack from the public interface
...
This felt a bit repeatey and it pre-dated the TerminalHost trait.
I'd like to remove it completely but there are some frustrating and
fiddly lifetime concerns with mutable TerminalHost reference so I'm
hiding it from the public interface and bridging it the answerback
stream into the host at the bottom of the advance_bytes method for
now.
2018-02-11 09:40:02 -08:00
Wez Furlong
52ba033ea7
Avoid flickery erase in render_line
...
This also improves perf. The issue was that the erase of the whole
line of the background may be observed by the X server when SHM is
enabled because we don't wait for the exposure/copy to the window
pixmap before updating the same row fractionally later.
Avoiding the unconditional erase and just painting the full cell
contents over means that there's no opportunity for a visible flash.
In addition, since we render the cells background individually, that
erase was not needed.
This should save us some work and take some load off the cpu.
2018-02-11 08:59:56 -08:00
Wez Furlong
9feb3bd0e7
fixup width for background/underline/strike
...
This wasn't correctly handling double-width or ligatures. In addition,
don't respect the x_advance outside of a ligature run, as it can result
in slightly offset columns for example when `ls -l` shows `--` and that
sequence has a slightly less wide ligatured rendition.
```
echo -e '\e[4mu--nder\e[0m \e[21mdo--uble\e[0m \e[9mst--rike\e[0m'
```
2018-02-11 08:47:53 -08:00
Wez Furlong
74cd62e743
extract render_glyph_slices
2018-02-11 08:25:22 -08:00
Wez Furlong
ee603e4cc8
clarify comments
2018-02-11 08:10:16 -08:00
Wez Furlong
1ba432378b
extract cursor rendering
2018-02-11 08:05:58 -08:00
Wez Furlong
8ecaa7d6ab
extract underline and strikethrough methods
2018-02-11 08:01:06 -08:00
Wez Furlong
0208a7837e
start breakin up the paint method
...
This has grown pretty large. Splitting out the guts means adopting
the use of RefCell to satisfy the borrow checker.
2018-02-11 07:46:40 -08:00
Wez Furlong
31b270910b
make cell_height and cell_width integers
...
I've been meaning to do this for a while
2018-02-11 07:28:36 -08:00
Wez Furlong
4a0648fef5
Add strikethrough rendering
2018-02-10 21:42:55 -08:00
Wez Furlong
5a6ed045ad
Render underline and double underline
2018-02-10 21:25:43 -08:00
Wez Furlong
ac1751f20c
factor our line drawing from rect drawing
2018-02-10 20:42:01 -08:00
Wez Furlong
ff34198b8a
move terminalstate to its own file
2018-02-10 19:14:16 -08:00
Wez Furlong
2329783082
move Terminal to its own file
2018-02-10 19:10:04 -08:00
Wez Furlong
b967bfe3fd
move screen to own file
2018-02-10 19:01:44 -08:00
Wez Furlong
604d1c27d7
move line to its own file
2018-02-10 18:55:43 -08:00
Wez Furlong
ddef4e7f7c
move cell types to their own file
2018-02-10 18:49:57 -08:00
Wez Furlong
7e7c622b79
move input types to their own file
2018-02-10 18:41:58 -08:00
Wez Furlong
55ae1fb76a
move selection types to their own file
2018-02-10 18:41:40 -08:00
Wez Furlong
68949808ba
parse and record hyperlinks as cell attributes
2018-02-10 15:45:45 -08:00
Wez Furlong
1500063c96
Start adding hyperlink support code
2018-02-10 15:12:21 -08:00
Wez Furlong
76fe17b20b
Cell is no longer Copy
...
This will support Cells owning `Rc<>` to things like hyperlink
data or image data.
2018-02-10 09:52:14 -08:00
Wez Furlong
629a12a3a0
address a minor todo re: alt screen
2018-02-10 09:50:33 -08:00
Wez Furlong
6af3b63d57
make scrollback size configurable
2018-02-10 09:43:54 -08:00
Wez Furlong
beeaacfabc
fixup some bad math for under-width ligatures
...
We were panicking when rendering the || ligature, which is narrower
than we were expecting. There was also a weird looking assert
that was triggering if we got path the math overflow.
2018-02-10 09:27:59 -08:00