summaryrefslogtreecommitdiff
path: root/source/html
diff options
context:
space:
mode:
Diffstat (limited to 'source/html')
-rw-r--r--source/html/html-font.c11
-rw-r--r--source/html/html-layout.c17
2 files changed, 15 insertions, 13 deletions
diff --git a/source/html/html-font.c b/source/html/html-font.c
index 3b8f7c72..01ec10f5 100644
--- a/source/html/html-font.c
+++ b/source/html/html-font.c
@@ -19,7 +19,7 @@ fz_load_html_default_font(fz_context *ctx, fz_html_font_set *set, const char *fa
if (!data)
fz_throw(ctx, FZ_ERROR_GENERIC, "cannot load html font: %s", real_family);
set->fonts[idx] = fz_new_font_from_memory(ctx, NULL, data, size, 0, 1);
- set->fonts[idx]->is_serif = !is_sans;
+ fz_font_flags(set->fonts[idx])->is_serif = !is_sans;
}
return set->fonts[idx];
}
@@ -60,10 +60,11 @@ fz_load_html_font(fz_context *ctx, fz_html_font_set *set, const char *family, in
if (data)
{
fz_font *font = fz_new_font_from_memory(ctx, NULL, data, size, 0, 0);
- if (is_bold && !font->is_bold)
- font->fake_bold = 1;
- if (is_italic && !font->is_italic)
- font->fake_italic = 1;
+ fz_font_flags_t *flags = fz_font_flags(font);
+ if (is_bold && !flags->is_bold)
+ flags->fake_bold = 1;
+ if (is_italic && !flags->is_italic)
+ flags->fake_italic = 1;
fz_add_html_font_face(ctx, set, family, is_bold, is_italic, "<builtin>", font);
fz_drop_font(ctx, font);
return font;
diff --git a/source/html/html-layout.c b/source/html/html-layout.c
index e671c64d..2fe6de82 100644
--- a/source/html/html-layout.c
+++ b/source/html/html-layout.c
@@ -791,7 +791,7 @@ static int quick_ligature_mov(fz_context *ctx, string_walker *walker, unsigned i
static int quick_ligature(fz_context *ctx, string_walker *walker, unsigned int i)
{
- if (walker->glyph_info[i].codepoint == 'f' && i + 1 < walker->glyph_count && !walker->font->is_mono)
+ if (walker->glyph_info[i].codepoint == 'f' && i + 1 < walker->glyph_count && !fz_font_flags(walker->font)->is_mono)
{
if (walker->glyph_info[i+1].codepoint == 'f')
{
@@ -873,13 +873,13 @@ static int walk_string(string_walker *walker)
/* Disable harfbuzz shaping if script is common or LGC and there are no opentype tables. */
quickshape = 0;
- if (walker->script <= 3 && !walker->rtl && !walker->font->has_opentype)
+ if (walker->script <= 3 && !walker->rtl && !fz_font_flags(walker->font)->has_opentype)
quickshape = 1;
hb_lock(ctx);
fz_try(ctx)
{
- face = walker->font->ft_face;
+ face = fz_font_ft_face(walker->font);
walker->scale = face->units_per_EM;
fterr = FT_Set_Char_Size(face, walker->scale, walker->scale, 72, 72);
if (fterr)
@@ -899,11 +899,12 @@ static int walk_string(string_walker *walker)
if (!quickshape)
{
- if (walker->font->hb_font == NULL)
+ fz_hb_t *hb = fz_font_hb(walker->font);
+ if (hb->font == NULL)
{
Memento_startLeaking(); /* HarfBuzz leaks harmlessly */
- walker->font->hb_destroy = (fz_hb_font_destructor_t *)hb_font_destroy;
- walker->font->hb_font = hb_ft_font_create(face, NULL);
+ hb->destroy = (fz_hb_font_destructor_t *)hb_font_destroy;
+ hb->font = hb_ft_font_create(face, NULL);
Memento_stopLeaking();
}
@@ -911,7 +912,7 @@ static int walk_string(string_walker *walker)
hb_buffer_guess_segment_properties(walker->hb_buf);
Memento_stopLeaking();
- hb_shape(walker->font->hb_font, walker->hb_buf, NULL, 0);
+ hb_shape(hb->font, walker->hb_buf, NULL, 0);
}
walker->glyph_pos = hb_buffer_get_glyph_positions(walker->hb_buf, &walker->glyph_count);
@@ -1978,7 +1979,7 @@ void
fz_print_css_style(fz_context *ctx, fz_css_style *style, int boxtype, int n)
{
indent(n); printf("font_size %g%c\n", style->font_size.value, style->font_size.unit);
- indent(n); printf("font %s\n", style->font ? style->font->name : "NULL");
+ indent(n); printf("font %s\n", style->font ? fz_font_name(style->font) : "NULL");
indent(n); printf("width = %g%c;\n", style->width.value, style->width.unit);
indent(n); printf("height = %g%c;\n", style->height.value, style->height.unit);
if (boxtype == BOX_BLOCK)