Age | Commit message (Collapse) | Author |
|
fz_fonts gain a 'shaper' field that will be filled in as
required. Use a void * rather than an hb_font_t to avoid
polluting top level include space.
Harfbuff handles mirroring for us, so lose the 'mirror'
fields. This simplifies our wrappers around the 'standard'
bidi code in that we don't need to split fragments upon
mirroring.
We do need to split our fragments at script changes though
as harfbuzz only operates on a single font at a time.
Update the html flow structure so that each flow node contains
details of the the direction specified for it in the markup,
the language specified for it in the markup and the script
detected by the bidi code.
Get the bidi code to pass out the script for each fragment
as part of the callback and populate that field in the node.
Ensure that we pass in the markup direction to the bidi
splitting code as the 'base' direction.
When feeding the bidi code, rather than feeding it paragraphs
at a time, break those paragraphs if different parts of them
have different marked up directions.
|
|
|
|
Look up fallback fonts by unicode script, with a flag to select the serif or
sans-serif font style where such variants exist.
Move all builtin fonts into fitz namespace.
|
|
|
|
Note: font->fallback is not reference counted here. The fallback
mechanism is probably going to have to change when we add text shaping.
|
|
|
|
fz_encode_character_with_fallback finds the first font in the fallback
chain that has the glyph encoded, and if none do then try to encode
a bullet character.
|
|
In RTL context, text-align: left should be right, and vice versa.
Since we currently ignore the dir="xxx" HTML attributes and CSS
properties, always pick up the directionality from the text as if
dir="auto".
|
|
|
|
Make the import follow mupdf style (better, if not perfect).
Use ucdn where possible to avoid duplicating tables.
Shrink the types, make them explicit (e.g. use fz_bidi_level rather
than int) and make tables const.
Use 32-bit integers for text.
|
|
|
|
|
|
|
|
|
|
After we parse html text from an ebook run it through the
unicode bidirectional algorithm to determine the directionality
of each fragment. This may require splitting of fragments.
Currently we don't do anything with this information.
|
|
Saves a bit of memory, and prepares for the addition of later
fields (such as direction).
|
|
|
|
|
|
|
|
|
|
Remove strcpy and strtok calls when matching class conditions.
|
|
CSS doesn't need precision, and doesn't support exponential notation.
Use a simpler string to float conversion algorithm, which is magnitudes
of order faster.
|
|
|
|
|
|
|
|
A far cry from the full Unicode Line Breaking Algorithm, but it solves
the main issues with CJK line breaking.
|
|
|
|
Still a no-op except for returning the document format.
|
|
|
|
|
|
Check flow is not NULL before dereferencing it. Everything else
in this area of the code copes with it being NULL.
|
|
They are skipped during layout, so should also be skipped here.
Fixes bug 695943.
|
|
Fixes bug 695994 where multiple child selectors would not match properly.
The "a > b > c" rule should be interpreted as ((a > b) > c) in order
to match properly.
|
|
Add -U option to mupdf and mudraw to set a user stylesheet.
Uses a context to store user the stylesheet, just like the AA level.
|
|
|
|
|
|
|
|
|
|
Ignore inheritance on font-size properties altogether. Since we already
inherit the font-size during the 'em' calculations when laying out text,
inheriting the font-size property textually will result in doubling
the effect of any scaling.
|
|
|
|
|
|
|
|
|
|
Add 'break' nodes to flow list for forced line breaks.
|
|
|
|
|
|
Deal with it.
|
|
|
|
|
|
The selectors ".foo.bar" and ".foo .bar" are not equivalent!
They should parse as "*.foo.bar" and "*.foo *.bar" but we parsed
both as "*.foo.bar" due to us ignoring significant whitespace.
|