Commit Graph

15110 Commits

Author SHA1 Message Date
Kovid Goyal
744145f392 Add cairo and pixman as deps on Linux
Needed to render COLRv1 fonts. Which are needed because bitmap emoji
fonts dont render well at large font sizes such as can be used with
multicell chars.
2025-02-03 11:06:38 +05:30
Kovid Goyal
c599b7e02f API to render a single codepoint using a Face 2025-02-03 10:56:52 +05:30
Kovid Goyal
689bdde224 Fix history buffer not clearing lines when rewrapping and the number of lines is larger than size of buffer 2025-02-03 10:56:52 +05:30
Kovid Goyal
de19019251 Use a single alloc for all segments of historybuf when resizing 2025-02-03 10:56:52 +05:30
Kovid Goyal
18ba5ce668 ... 2025-02-03 10:56:52 +05:30
Kovid Goyal
11315b35ba ... 2025-02-03 10:56:52 +05:30
Kovid Goyal
82d7cc1802 spelling 2025-02-03 10:56:52 +05:30
Kovid Goyal
57d1ec8648 ... 2025-02-03 10:56:51 +05:30
Kovid Goyal
c2503988c1 Add a note about querying for scale and width separately 2025-02-03 10:56:51 +05:30
Kovid Goyal
78c83e8218 Add a sentence specifying the fractional scale does not adjust number of cells 2025-02-03 10:56:51 +05:30
Kovid Goyal
dbb1703f15 Fix crash with large text
Need to find a better way to render the dotted decoration. Will do that
later, just fix the crash for now.
2025-02-03 10:56:51 +05:30
Kovid Goyal
b53c4941b5 add link to issue discussing text-sizing protocol 2025-02-03 10:56:51 +05:30
Kovid Goyal
dfe59a75b8 ... 2025-02-03 10:56:51 +05:30
Kovid Goyal
a30a639cb9 Add docs for multicell + control codes 2025-02-03 10:56:51 +05:30
Kovid Goyal
8fd7d3100f More multicell docs 2025-02-03 10:56:51 +05:30
Kovid Goyal
9418f399c3 ... 2025-02-03 10:56:51 +05:30
Kovid Goyal
530e1ea1b3 Add section on detecting text sizing protocol 2025-02-03 10:56:51 +05:30
Kovid Goyal
3655db3124 ... 2025-02-03 10:56:51 +05:30
Kovid Goyal
3501e76238 Document how we solve the character width problem 2025-02-03 10:56:51 +05:30
Kovid Goyal
da234244a4 More docs on text sizing 2025-02-03 10:56:51 +05:30
Kovid Goyal
f1452a80dd More work on text sizing docs 2025-02-03 10:56:51 +05:30
Kovid Goyal
3b0b1df9c3 Use textFetch() for underline exclusion sampling
Fixes sampling from non-bottom row
2025-02-03 10:56:51 +05:30
Kovid Goyal
484155ca89 Start work on documenting text sizing protocol 2025-02-03 10:56:50 +05:30
Kovid Goyal
4e76a3d1c6 Ignore underline exclusion if max overlap is only half the thickness of the underline
This eliminates false positives for c and s with some fonts.
2025-02-03 10:56:50 +05:30
Kovid Goyal
8bf8f5dc46 Finish up testing for multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
64e3b641ce Get basic multicell URL detection working 2025-02-03 10:56:50 +05:30
Kovid Goyal
c3db7c9464 ... 2025-02-03 10:56:50 +05:30
Kovid Goyal
6a19918687 More work on multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
cf89dba5af More work on multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
0bf32c6a59 More work on multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
f599144913 Fix multicell marking of hyperlinks 2025-02-03 10:56:50 +05:30
Kovid Goyal
756240f68d Remove unused code 2025-02-03 10:56:50 +05:30
Kovid Goyal
2423c2166e More tests for multicell selections 2025-02-03 10:56:50 +05:30
Kovid Goyal
da1626090a Update codebase to Python 3.10 using pyupgrade 2025-02-03 10:56:50 +05:30
Kovid Goyal
922d08516b ... 2025-02-03 10:56:50 +05:30
Kovid Goyal
ac1aaab077 More work of selections as text 2025-02-03 10:56:50 +05:30
Kovid Goyal
8156a7520f Start work on multicell support for selection_as_text 2025-02-03 10:56:49 +05:30
Kovid Goyal
ac32f91a2e Implement rendering of selections that intersect multicell cells 2025-02-03 10:56:49 +05:30
Kovid Goyal
2a996418bf ... 2025-02-03 10:56:49 +05:30
Kovid Goyal
dc5037ff37 Add tests for multicell char split between history and line buffers 2025-02-03 10:56:49 +05:30
Kovid Goyal
561686c9d4 Refactor rewrap code, again
Now we do the rewrap of history and line buffers together. This is
faster and deals with multiline chars split between the two buffers
correctly. Also, considerably simpler code.
2025-02-03 10:56:49 +05:30
Kovid Goyal
97449dfddb Cursor tracking tests
Also fix extra x movement for tracked cursors
2025-02-03 10:56:49 +05:30
Kovid Goyal
c4a32862d1 Implement restitch during rewrap
Faster, less code and gets us multicell handling during restitching for
free.
2025-02-03 10:56:49 +05:30
Kovid Goyal
b3c39f4921 Finish up the redraw multicell tests 2025-02-03 10:56:49 +05:30
Kovid Goyal
001cc8009e More multicell rewrap tests 2025-02-03 10:56:49 +05:30
Kovid Goyal
decafb0d3f More multicell wrap tests 2025-02-03 10:56:49 +05:30
Kovid Goyal
cf5f6e97e8 Add some basic tests for multicell rewrap 2025-02-03 10:56:49 +05:30
Kovid Goyal
2e4bab6f49 More work on rewrapping multicells 2025-02-03 10:56:49 +05:30
Kovid Goyal
aa8bb46c42 Start work on rewrapping multicells 2025-02-03 10:56:49 +05:30
Kovid Goyal
dd7630514e Micro-optimization 2025-02-03 10:56:49 +05:30