Kovid Goyal
ddc327b772
Prevent DoS attacks via requesting too many fallback fonts
2017-11-13 08:40:47 +05:30
Kovid Goyal
a70f6405ac
Allocate fallback fonts on the heap
...
The size of a font is quite large ~ 100KB so it does not make sense to
store their data statically.
2017-11-13 08:39:30 +05:30
Kovid Goyal
bf0ad30d17
DRYer
2017-11-13 07:30:35 +05:30
Kovid Goyal
6fbe52acf4
...
2017-11-13 07:13:42 +05:30
Kovid Goyal
9fccc38382
Better fix for not using the unsafe to break flag
...
Recognize special glyphs by comparing the index to the glyph for the
codepoint in the font. Cannot rely on glyph width as many glyphs have
zero width. For example the glyph for space characters.
2017-11-13 07:03:58 +05:30
Kovid Goyal
339c0d2980
Put back consumed API
2017-11-12 23:43:22 +05:30
Kovid Goyal
336857a106
A more general cp->gid API
2017-11-12 23:43:21 +05:30
Kovid Goyal
d01e5f72fc
Use a cache for dummy glyph lookups
2017-11-12 23:43:21 +05:30
Kovid Goyal
5c6be7f637
Insulate emoji test from system wcwidth
2017-11-12 23:43:21 +05:30
Kovid Goyal
088087df73
Use only cluster numbers and glyph sizes for grouping glyphs into cells
...
See https://github.com/behdad/harfbuzz/issues/615 for discussion
2017-11-12 23:43:21 +05:30
Kovid Goyal
0bd093ec2e
Also fix mouse URXVT_PROTOCOL
...
Fixes #169
2017-11-12 22:11:20 +05:30
Kovid Goyal
4613e161ce
Fix incorrect encoding for mouse events in the UTF8_PROTOCOL
...
Fixes #167
2017-11-12 22:05:01 +05:30
Kovid Goyal
dad9444db0
Dont crash if harfbuzz return null info or positions pointers
2017-11-12 17:18:49 +05:30
Kovid Goyal
dd0080d3ce
Fix #168
2017-11-12 16:14:59 +05:30
Kovid Goyal
6b9303ba7d
Dont store standard cursors on the window object
2017-11-12 12:42:09 +05:30
Kovid Goyal
eb32423fb6
oops
2017-11-12 12:33:44 +05:30
Kovid Goyal
9bb2a05a9b
Update list of major features
2017-11-12 11:49:42 +05:30
Kovid Goyal
653fc0dd7e
Fix #50
2017-11-12 11:42:50 +05:30
Kovid Goyal
cee6ef9941
Center multi-cell glyph runs
2017-11-12 11:04:52 +05:30
Kovid Goyal
67a37f1f41
Adjust the point size of fallback and symbol fonts so that their heights match the current cell height
2017-11-12 10:30:57 +05:30
Kovid Goyal
604e82fd65
oops
2017-11-11 21:15:19 +05:30
Kovid Goyal
5f4e003bed
Add a ligature shaping test
2017-11-11 20:55:53 +05:30
Kovid Goyal
53e9f35c1f
Add test for harfbuzz shaping
2017-11-11 18:47:34 +05:30
Kovid Goyal
c56a2ed055
Ensure that harfbuzz always uses the OpenType shaper
2017-11-11 18:25:25 +05:30
Kovid Goyal
e5d411b80d
Refactor font code
...
DRYer with global state stored in fewer places. And only round-tripping
through python for font selection, not face creation.
2017-11-11 18:14:22 +05:30
Kovid Goyal
98e93cb4bd
Workaround for broken CTFontCreateForString
2017-11-11 10:16:43 +05:30
Kovid Goyal
f5040532c5
Ensure combining chars are zero-width regardless of wcwidth implementation
2017-11-11 09:29:28 +05:30
Kovid Goyal
447a2fe8cf
...
2017-11-11 09:20:34 +05:30
Kovid Goyal
a14defbab7
Change the showcase fonts
2017-11-11 09:13:04 +05:30
Kovid Goyal
3592f82e4f
Implement fallback fonts in CoreText
2017-11-11 08:08:03 +05:30
Kovid Goyal
4edfa9f4fd
Implement loading of bitmap fonts via FreeType
...
Needed for some fallback fonts such as Apple Color Emoji
2017-11-11 08:07:18 +05:30
Kovid Goyal
51fe1e4dab
...
2017-11-11 07:12:50 +05:30
Kovid Goyal
2df9f3500c
Build with --debug in update-on-ox
2017-11-11 07:12:21 +05:30
Kovid Goyal
289cfe7584
Fix bold-italic variant not being auto-selected on macOS
2017-11-10 22:06:11 +05:30
Kovid Goyal
b603d7abb7
Ensure underline_thickness is not zero
2017-11-10 21:46:50 +05:30
Kovid Goyal
3437433ed4
...
2017-11-10 17:43:47 +05:30
Kovid Goyal
cccacfdf7c
Restore Apple's line height fudge factor on macOS
2017-11-10 17:38:36 +05:30
Kovid Goyal
c6fa0503af
Simplify font_units_to_pixels
...
Make use of the precalculated scaling value in the FT Face metrics
object
2017-11-10 17:23:28 +05:30
Kovid Goyal
579933ac27
...
2017-11-10 15:55:59 +05:30
Kovid Goyal
541f389a06
Work on using FreeType to render on macOS as well
2017-11-10 15:39:53 +05:30
Kovid Goyal
d2654db6f0
oops
2017-11-10 14:57:44 +05:30
Kovid Goyal
c2b2833a37
API to load FreeType font from path and psname
2017-11-10 14:50:15 +05:30
Kovid Goyal
b0fffad0c2
API to create FreeType face from in memory data
2017-11-10 14:30:54 +05:30
Kovid Goyal
774956053a
Allow storing arbitrary data on FreeType Face objects
2017-11-10 14:20:20 +05:30
Kovid Goyal
5c582f7639
Start work on harfbuzz rendering on macs
2017-11-10 12:52:54 +05:30
Kovid Goyal
ccc0433fa1
...
2017-11-10 11:26:58 +05:30
Kovid Goyal
43bf056f09
Add a command to list fonts
2017-11-10 11:02:32 +05:30
Kovid Goyal
1d7b650fd0
...
2017-11-10 10:30:34 +05:30
Kovid Goyal
fefe6c9024
Use fc-list instead of fc-match to select fonts
...
This is because there is no way to force fc-match to return a monospace
font. So if the user specifies a non-existent font we end up with some
non-monospaced font, which looks terrible.
Also, this makes the font selection logic or macOS and Linux similar.
2017-11-10 10:15:37 +05:30
Kovid Goyal
b58e900806
Call prerender() in rendering tests setup
2017-11-10 08:30:35 +05:30