diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-09-15 19:18:24 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-09-15 19:18:24 +0000 |
commit | 8870d7ce40a6658f3d8be6d047f799b9a560fc66 (patch) | |
tree | 68a3ff6968d2b63cf29747b4ac6b6dd34c9ec808 /pango | |
parent | c628f8847dffe8ebb391b4868b5d9ae308cb4e42 (diff) | |
download | pango-8870d7ce40a6658f3d8be6d047f799b9a560fc66.tar.gz |
Unset gravity on the resulting font description. We want gravity to be set
2006-09-15 Behdad Esfahbod <behdad@gnome.org>
* pango/pangofc-fontmap.c (pango_fc_face_describe): Unset gravity on
the resulting font description. We want gravity to be set on all
fonts described, but not font faces.
Diffstat (limited to 'pango')
-rw-r--r-- | pango/break.c | 20 | ||||
-rw-r--r-- | pango/pango-context.c | 2 | ||||
-rw-r--r-- | pango/pangofc-fontmap.c | 4 |
3 files changed, 25 insertions, 1 deletions
diff --git a/pango/break.c b/pango/break.c index fcdb7601..4ce2091a 100644 --- a/pango/break.c +++ b/pango/break.c @@ -1488,11 +1488,17 @@ pango_break (const gchar *text, g_return_if_fail (analysis != NULL); g_return_if_fail (attrs != NULL); + g_message ("break"); + if (analysis->lang_engine && PANGO_ENGINE_LANG_GET_CLASS (analysis->lang_engine)->script_break) PANGO_ENGINE_LANG_GET_CLASS (analysis->lang_engine)->script_break (analysis->lang_engine, text, length, analysis, attrs, attrs_len); else pango_default_break (text, length, analysis, attrs, attrs_len); + + int i; + for (i = 0; i < attrs_len; i++) + g_message ("%d %d", attrs[i].is_cursor_position, attrs[i].backspace_deletes_character); } /** @@ -1629,6 +1635,7 @@ pango_get_log_attrs (const char *text, static guint engine_type_id = 0; static guint render_type_id = 0; PangoAnalysis analysis = { 0 }; + PangoScriptIter *iter; analysis.level = level; @@ -1647,8 +1654,18 @@ pango_get_log_attrs (const char *text, render_type_id = g_quark_from_static_string (PANGO_RENDER_TYPE_NONE); } + g_message ("logattrs %d >>>>>", length); lang_map = pango_find_map (language, engine_type_id, render_type_id); + + iter = pango_script_iter_new (text, length); + do + { + + } + while (pango_script_iter_next (iter)); + pango_script_iter_free (iter); + range_start = text; script = pango_script_for_unichar (g_utf8_get_char (text)); range_engine = (PangoEngineLang*) pango_map_get_engine (lang_map, script); @@ -1673,6 +1690,7 @@ pango_get_log_attrs (const char *text, /* Engine has changed; do the breaking for the current range, * then start a new range. */ + g_message ("log break %d %d", chars_broken, chars_in_range); pango_break (range_start, pos - range_start, &analysis, @@ -1698,9 +1716,11 @@ pango_get_log_attrs (const char *text, g_assert (pos == end); g_assert (range_engine == analysis.lang_engine); + g_message ("log final break %d %d", chars_broken, chars_in_range); pango_break (range_start, end - range_start, &analysis, log_attrs + chars_broken, attrs_len - chars_broken); + g_message ("logattrs <<<<<"); } diff --git a/pango/pango-context.c b/pango/pango-context.c index 8aee2a0d..5b805cfa 100644 --- a/pango/pango-context.c +++ b/pango/pango-context.c @@ -1273,7 +1273,7 @@ itemize_state_process_run (ItemizeState *state) if (G_UNLIKELY (!g_unichar_isgraph (wc) && wc != 0x3000 && g_unichar_type (wc) != G_UNICODE_PRIVATE_USE)) */ - if (G_UNLIKELY (!g_unichar_isprint (wc) && + if (G_UNLIKELY (!g_unichar_isgraph (wc) && g_unichar_type (wc) != G_UNICODE_PRIVATE_USE)) { shape_engine = NULL; diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index 2c11b100..f77b0338 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -1708,6 +1708,10 @@ pango_fc_face_describe (PangoFontFace *face) { desc = pango_fc_font_description_from_pattern (result_pattern, FALSE); FcPatternDestroy (result_pattern); + /* Unset gravity. We want gravity to be set to descriptions of fonts, + * but not faces. + */ + pango_font_description_unset_fields (desc, PANGO_FONT_MASK_GRAVITY); } FcPatternDestroy (match_pattern); |