summaryrefslogtreecommitdiff
path: root/pango/pango-layout.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2001-06-14 20:38:25 +0000
committerOwen Taylor <otaylor@src.gnome.org>2001-06-14 20:38:25 +0000
commit5ee19fca3c7c3da53ef4f000efdb3bbf4dcb1a04 (patch)
tree17a70e18597aae753e36a983150500bd9362dcfd /pango/pango-layout.c
parent3a42444e7f2449598106338be7e6ec9468bb7946 (diff)
downloadpango-5ee19fca3c7c3da53ef4f000efdb3bbf4dcb1a04.tar.gz
Add a new PangoLanguage type to represent language tags; these can
Sat Jun 9 17:36:09 2001 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c: Add a new PangoLanguage type to represent language tags; these can efficiently be compared and don't need to be copied. Also add pango_language_matches() to match a language tag against a pattern. * pango/pango-item.[ch] pango/pango-layout.c: Move extra_attrs from PangoItem to PangoAnalysis. Add a language tag field to PangoAnalysis. (#55894) * pango/pango-attributes.[ch] (pango_attr_iterator_get_font): Return the language tag as well. * pango/pango-attributes.[ch]: Rename PangoAttrLang to PangoAttrLanguage, and make it hold a PangoLanguage. * pango/pango-context.[ch]: Rename pango_context_{get,set}_lang() to pango_context_{get,set}_language(). * **.[ch]: Adapt to PangoLanguage and s/lang/language/ changes. * modules/basic/basic-x.c modules/basic/tables-big.i: Add support for ordering character sets differently for different language tags. * pango/itemize.c: Remove old, unused file. * pango/pango-context.c (pango_itemize): Reduce number of mallocs by allocating one array of PangoAnalysis instead of many arrays.
Diffstat (limited to 'pango/pango-layout.c')
-rw-r--r--pango/pango-layout.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index f0424b26..a1990190 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -2274,20 +2274,29 @@ ensure_tab_width (PangoLayout *layout)
PangoAttrList *tmp_attrs;
PangoAttrIterator *iter;
PangoFontDescription font_desc;
+ PangoLanguage *language;
int i;
layout_attrs = pango_layout_get_effective_attributes (layout);
iter = pango_attr_list_get_iterator (layout_attrs);
pango_attr_iterator_get_font (iter, pango_context_get_font_description (layout->context),
- &font_desc, NULL);
+ &font_desc, &language, NULL);
tmp_attrs = pango_attr_list_new ();
+
attr = pango_attr_font_desc_new (&font_desc);
attr->start_index = 0;
attr->end_index = 1;
-
pango_attr_list_insert_before (tmp_attrs, attr);
+ if (language)
+ {
+ attr = pango_attr_language_new (language);
+ attr->start_index = 0;
+ attr->end_index = 1;
+ pango_attr_list_insert_before (tmp_attrs, attr);
+ }
+
items = pango_itemize (layout->context, " ", 0, 1, tmp_attrs, NULL);
pango_attr_iterator_destroy (iter);
@@ -3345,6 +3354,7 @@ pango_layout_line_get_empty_extents (PangoLayoutLine *line,
pango_attr_iterator_get_font (iter,
base_font_desc,
&font_desc,
+ NULL,
NULL);
break;
}
@@ -3365,9 +3375,9 @@ pango_layout_line_get_empty_extents (PangoLayoutLine *line,
font = pango_context_load_font (layout->context, &font_desc);
if (font)
{
- char *lang = pango_context_get_lang (layout->context);
- pango_font_get_metrics (font, lang, &metrics);
- g_free (lang);
+ pango_font_get_metrics (font,
+ pango_context_get_language (layout->context),
+ &metrics);
logical_rect->y = - metrics.ascent;
logical_rect->height = metrics.ascent + metrics.descent;
@@ -3701,7 +3711,7 @@ pango_layout_get_item_properties (PangoItem *item,
PangoRectangle *logical_rect,
gboolean *shape_set)
{
- GSList *tmp_list = item->extra_attrs;
+ GSList *tmp_list = item->analysis.extra_attrs;
if (shape_set)
*shape_set = FALSE;