From 443e8c395e9f45d89f669c944366055eead5d021 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 21 Jun 2000 20:41:15 +0000 Subject: [PATCH] Use gtk_get_default_language 2000-06-21 Havoc Pennington * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use gtk_get_default_language * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): new function to get the default language * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: s/gtk_text_view_style_values/gtk_text_style_values/ * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: Add a "language" field to tags. (gtk_text_tag_set_arg): Fix bug in setting "bg_full_height_set" tag. --- ChangeLog | 17 +++++++++ ChangeLog.pre-2-0 | 17 +++++++++ ChangeLog.pre-2-10 | 17 +++++++++ ChangeLog.pre-2-2 | 17 +++++++++ ChangeLog.pre-2-4 | 17 +++++++++ ChangeLog.pre-2-6 | 17 +++++++++ ChangeLog.pre-2-8 | 17 +++++++++ gtk/gtkmain.c | 17 +++++++++ gtk/gtkmain.h | 18 ++++++---- gtk/gtktextlayout.c | 30 ++++++++-------- gtk/gtktexttag.c | 76 +++++++++++++++++++++++++++++------------ gtk/gtktexttag.h | 2 +- gtk/gtktexttagprivate.h | 34 +++++++++--------- gtk/gtktextview.c | 4 +-- gtk/gtkwidget.c | 11 ++---- 15 files changed, 240 insertions(+), 71 deletions(-) diff --git a/ChangeLog b/ChangeLog index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f33f1c3e38..64fa7f684b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,20 @@ +2000-06-21 Havoc Pennington + + * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use + gtk_get_default_language + + * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): + new function to get the default language + + * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: + s/gtk_text_view_style_values/gtk_text_style_values/ + + * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: + Add a "language" field to tags. + + (gtk_text_tag_set_arg): Fix bug in setting + "bg_full_height_set" tag. + 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index a30676274e..6446776888 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -487,6 +487,23 @@ gtk_set_locale (void) return gdk_set_locale (); } +gchar* +gtk_get_default_language (void) +{ + gchar *lang; + gchar *p; + + lang = g_strdup (setlocale (LC_CTYPE, NULL)); + p = strchr (lang, '.'); + if (p) + *p = '\0'; + p = strchr (lang, '@'); + if (p) + *p = '\0'; + + return lang; +} + void gtk_main (void) { diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index 9668fbda66..fb262c7788 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -78,13 +78,17 @@ gchar* gtk_check_version (guint required_major, /* Initialization, exit, mainloop and miscellaneous routines */ -void gtk_init (int *argc, - char ***argv); -gboolean gtk_init_check (int *argc, - char ***argv); -void gtk_exit (gint error_code); -gchar* gtk_set_locale (void); -gint gtk_events_pending (void); + +void gtk_init (int *argc, + char ***argv); +gboolean gtk_init_check (int *argc, + char ***argv); +void gtk_exit (gint error_code); +gchar* gtk_set_locale (void); +gchar* gtk_get_default_language (void); +gint gtk_events_pending (void); + + /* The following is the event func GTK+ registers with GDK * we expose it mainly to allow filtering of events between diff --git a/gtk/gtktextlayout.c b/gtk/gtktextlayout.c index 82a8e83c57..b4dd559fb1 100644 --- a/gtk/gtktextlayout.c +++ b/gtk/gtktextlayout.c @@ -189,7 +189,7 @@ free_style_cache (GtkTextLayout *text_layout) { if (text_layout->one_style_cache) { - gtk_text_view_style_values_unref (text_layout->one_style_cache); + gtk_text_style_values_unref (text_layout->one_style_cache); text_layout->one_style_cache = NULL; } } @@ -204,7 +204,7 @@ gtk_text_layout_destroy (GtkObject *object) gtk_text_layout_set_buffer (layout, NULL); if (layout->default_style) - gtk_text_view_style_values_unref (layout->default_style); + gtk_text_style_values_unref (layout->default_style); layout->default_style = NULL; if (layout->ltr_context) @@ -280,10 +280,10 @@ gtk_text_layout_set_default_style (GtkTextLayout *layout, if (values == layout->default_style) return; - gtk_text_view_style_values_ref (values); + gtk_text_style_values_ref (values); if (layout->default_style) - gtk_text_view_style_values_unref (layout->default_style); + gtk_text_style_values_unref (layout->default_style); layout->default_style = values; @@ -784,7 +784,7 @@ get_style (GtkTextLayout *layout, */ if (layout->one_style_cache != NULL) { - gtk_text_view_style_values_ref (layout->one_style_cache); + gtk_text_style_values_ref (layout->one_style_cache); return layout->one_style_cache; } @@ -798,8 +798,8 @@ get_style (GtkTextLayout *layout, { /* One ref for the return value, one ref for the layout->one_style_cache reference */ - gtk_text_view_style_values_ref (layout->default_style); - gtk_text_view_style_values_ref (layout->default_style); + gtk_text_style_values_ref (layout->default_style); + gtk_text_style_values_ref (layout->default_style); layout->one_style_cache = layout->default_style; if (tags) @@ -811,14 +811,14 @@ get_style (GtkTextLayout *layout, /* Sort tags in ascending order of priority */ gtk_text_tag_array_sort (tags, tag_count); - style = gtk_text_view_style_values_new (); + style = gtk_text_style_values_new (); - gtk_text_view_style_values_copy (layout->default_style, - style); + gtk_text_style_values_copy (layout->default_style, + style); - gtk_text_view_style_values_fill_from_tags (style, - tags, - tag_count); + gtk_text_style_values_fill_from_tags (style, + tags, + tag_count); g_free (tags); @@ -826,7 +826,7 @@ get_style (GtkTextLayout *layout, /* Leave this style as the last one seen */ g_assert (layout->one_style_cache == NULL); - gtk_text_view_style_values_ref (style); /* ref held by layout->one_style_cache */ + gtk_text_style_values_ref (style); /* ref held by layout->one_style_cache */ layout->one_style_cache = style; /* Returning yet another refcount */ @@ -840,7 +840,7 @@ release_style (GtkTextLayout *layout, g_return_if_fail (style != NULL); g_return_if_fail (style->refcount > 0); - gtk_text_view_style_values_unref (style); + gtk_text_style_values_unref (style); } /* diff --git a/gtk/gtktexttag.c b/gtk/gtktexttag.c index e7f89a35fb..225cd4ef52 100644 --- a/gtk/gtktexttag.c +++ b/gtk/gtktexttag.c @@ -87,6 +87,7 @@ enum { ARG_UNDERLINE, ARG_OFFSET, ARG_BG_FULL_HEIGHT, + ARG_LANGUAGE, /* Whether-a-style-arg-is-set args */ ARG_BACKGROUND_SET, @@ -109,6 +110,7 @@ enum { ARG_UNDERLINE_SET, ARG_OFFSET_SET, ARG_BG_FULL_HEIGHT_SET, + ARG_LANGUAGE_SET, LAST_ARG }; @@ -220,7 +222,9 @@ gtk_text_tag_class_init (GtkTextTagClass *klass) GTK_ARG_READWRITE, ARG_OFFSET); gtk_object_add_arg_type ("GtkTextTag::background_full_height", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_BG_FULL_HEIGHT); - + gtk_object_add_arg_type ("GtkTextTag::language", GTK_TYPE_STRING, + GTK_ARG_READWRITE, ARG_LANGUAGE); + /* Style args are set or not */ gtk_object_add_arg_type ("GtkTextTag::background_set", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_BACKGROUND_SET); @@ -270,6 +274,8 @@ gtk_text_tag_class_init (GtkTextTagClass *klass) GTK_ARG_READWRITE, ARG_OFFSET_SET); gtk_object_add_arg_type ("GtkTextTag::background_full_height_set", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_BG_FULL_HEIGHT_SET); + gtk_object_add_arg_type ("GtkTextTag::language_set", GTK_TYPE_BOOL, + GTK_ARG_READWRITE, ARG_LANGUAGE_SET); signals[EVENT] = gtk_signal_new ("event", @@ -309,7 +315,7 @@ gtk_text_tag_new (const gchar *name) tag->name = g_strdup(name); - tag->values = gtk_text_view_style_values_new(); + tag->values = gtk_text_style_values_new(); return tag; } @@ -328,9 +334,9 @@ gtk_text_tag_destroy (GtkObject *object) g_assert(tkxt_tag->table == NULL); - gtk_text_view_style_values_unref(tkxt_tag->values); + gtk_text_style_values_unref(tkxt_tag->values); tkxt_tag->values = NULL; - + (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } @@ -584,6 +590,10 @@ gtk_text_tag_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) tkxt_tag->values->bg_full_height = GTK_VALUE_BOOL(*arg); break; + case ARG_LANGUAGE: + tkxt_tag->language_set = TRUE; + tkxt_tag->values->language = g_strdup (GTK_VALUE_STRING(*arg)); + break; /* Whether the value should be used... */ @@ -668,8 +678,12 @@ gtk_text_tag_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) break; case ARG_BG_FULL_HEIGHT_SET: - tkxt_tag->bg_full_height_set = TRUE; - tkxt_tag->values->bg_full_height = GTK_VALUE_BOOL(*arg); + tkxt_tag->bg_full_height_set = GTK_VALUE_BOOL(*arg); + break; + + case ARG_LANGUAGE_SET: + tkxt_tag->language_set = GTK_VALUE_BOOL(*arg); + size_changed = TRUE; break; default: @@ -796,6 +810,10 @@ gtk_text_tag_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) case ARG_BG_FULL_HEIGHT: GTK_VALUE_BOOL(*arg) = tag->values->bg_full_height; break; + + case ARG_LANGUAGE: + GTK_VALUE_STRING(*arg) = g_strdup (tag->values->language); + break; case ARG_BACKGROUND_SET: case ARG_BACKGROUND_GDK_SET: @@ -870,6 +888,10 @@ gtk_text_tag_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) case ARG_BG_FULL_HEIGHT_SET: GTK_VALUE_BOOL(*arg) = tag->bg_full_height_set; break; + + case ARG_LANGUAGE_SET: + GTK_VALUE_BOOL(*arg) = tag->language_set; + break; case ARG_BACKGROUND: case ARG_FOREGROUND: @@ -1020,7 +1042,7 @@ gtk_text_tag_array_sort(GtkTextTag** tag_array_p, */ GtkTextStyleValues* -gtk_text_view_style_values_new(void) +gtk_text_style_values_new(void) { GtkTextStyleValues *values; @@ -1029,13 +1051,15 @@ gtk_text_view_style_values_new(void) /* 0 is a valid value for most of the struct */ values->refcount = 1; + + values->language = gtk_get_default_language (); return values; } void -gtk_text_view_style_values_copy(GtkTextStyleValues *src, - GtkTextStyleValues *dest) +gtk_text_style_values_copy(GtkTextStyleValues *src, + GtkTextStyleValues *dest) { guint orig_refcount; @@ -1072,13 +1096,14 @@ gtk_text_view_style_values_copy(GtkTextStyleValues *src, *dest = *src; dest->font_desc = pango_font_description_copy (src->font_desc); - + dest->language = g_strdup (src->language); + dest->refcount = orig_refcount; dest->realized = FALSE; } void -gtk_text_view_style_values_ref(GtkTextStyleValues *values) +gtk_text_style_values_ref(GtkTextStyleValues *values) { g_return_if_fail(values != NULL); @@ -1086,7 +1111,7 @@ gtk_text_view_style_values_ref(GtkTextStyleValues *values) } void -gtk_text_view_style_values_unref(GtkTextStyleValues *values) +gtk_text_style_values_unref(GtkTextStyleValues *values) { g_return_if_fail(values != NULL); g_return_if_fail(values->refcount > 0); @@ -1108,15 +1133,18 @@ gtk_text_view_style_values_unref(GtkTextStyleValues *values) if (values->tab_array) gtk_text_view_tab_array_unref(values->tab_array); + + if (values->language) + g_free (values->language); g_free(values); } } void -gtk_text_view_style_values_realize(GtkTextStyleValues *values, - GdkColormap *cmap, - GdkVisual *visual) +gtk_text_style_values_realize(GtkTextStyleValues *values, + GdkColormap *cmap, + GdkVisual *visual) { g_return_if_fail(values != NULL); g_return_if_fail(values->refcount > 0); @@ -1135,9 +1163,9 @@ gtk_text_view_style_values_realize(GtkTextStyleValues *values, } void -gtk_text_view_style_values_unrealize(GtkTextStyleValues *values, - GdkColormap *cmap, - GdkVisual *visual) +gtk_text_style_values_unrealize(GtkTextStyleValues *values, + GdkColormap *cmap, + GdkVisual *visual) { g_return_if_fail(values != NULL); g_return_if_fail(values->refcount > 0); @@ -1157,9 +1185,9 @@ gtk_text_view_style_values_unrealize(GtkTextStyleValues *values, } void -gtk_text_view_style_values_fill_from_tags(GtkTextStyleValues *dest, - GtkTextTag** tags, - guint n_tags) +gtk_text_style_values_fill_from_tags(GtkTextStyleValues *dest, + GtkTextTag** tags, + guint n_tags) { guint n = 0; @@ -1266,6 +1294,12 @@ gtk_text_view_style_values_fill_from_tags(GtkTextStyleValues *dest, if (tag->bg_full_height_set) dest->bg_full_height = vals->bg_full_height; + + if (tag->language_set) + { + g_free (dest->language); + dest->language = g_strdup (vals->language); + } ++n; } diff --git a/gtk/gtktexttag.h b/gtk/gtktexttag.h index a21d42bcc1..6fed3c7d71 100644 --- a/gtk/gtktexttag.h +++ b/gtk/gtktexttag.h @@ -79,10 +79,10 @@ struct _GtkTextTag { guint bg_full_height_set : 1; guint elide_set : 1; guint editable_set : 1; + guint language_set : 1; guint pad1 : 1; guint pad2 : 1; guint pad3 : 1; - guint pad4 : 1; }; struct _GtkTextTagClass { diff --git a/gtk/gtktexttagprivate.h b/gtk/gtktexttagprivate.h index 022299e984..c19ddf2754 100644 --- a/gtk/gtktexttagprivate.h +++ b/gtk/gtktexttagprivate.h @@ -7,11 +7,11 @@ * the defaults with settings in the given tags, which should be sorted in * ascending order of priority */ -void gtk_text_view_style_values_fill_from_tags (GtkTextStyleValues *values, - GtkTextTag **tags, - guint n_tags); -void gtk_text_tag_array_sort (GtkTextTag **tag_array_p, - guint len); +void gtk_text_style_values_fill_from_tags (GtkTextStyleValues *values, + GtkTextTag **tags, + guint n_tags); +void gtk_text_tag_array_sort (GtkTextTag **tag_array_p, + guint len); /* * Style object created by folding a set of tags together @@ -79,6 +79,8 @@ struct _GtkTextStyleValues * GTK_WRAPMODE_NONE, GTK_WRAPMODE_WORD */ + gchar *language; + /* hide the text */ guint elide : 1; @@ -98,20 +100,20 @@ struct _GtkTextStyleValues guint pad4 : 1; }; -GtkTextStyleValues *gtk_text_view_style_values_new (void); -void gtk_text_view_style_values_copy (GtkTextStyleValues *src, - GtkTextStyleValues *dest); -void gtk_text_view_style_values_unref (GtkTextStyleValues *values); -void gtk_text_view_style_values_ref (GtkTextStyleValues *values); +GtkTextStyleValues *gtk_text_style_values_new (void); +void gtk_text_style_values_copy (GtkTextStyleValues *src, + GtkTextStyleValues *dest); +void gtk_text_style_values_unref (GtkTextStyleValues *values); +void gtk_text_style_values_ref (GtkTextStyleValues *values); /* ensure colors are allocated, etc. for drawing */ -void gtk_text_view_style_values_realize (GtkTextStyleValues *values, - GdkColormap *cmap, - GdkVisual *visual); +void gtk_text_style_values_realize (GtkTextStyleValues *values, + GdkColormap *cmap, + GdkVisual *visual); /* free the stuff again */ -void gtk_text_view_style_values_unrealize (GtkTextStyleValues *values, - GdkColormap *cmap, - GdkVisual *visual); +void gtk_text_style_values_unrealize (GtkTextStyleValues *values, + GdkColormap *cmap, + GdkVisual *visual); #endif diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 124f16dbfb..27b71014f0 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -2406,7 +2406,7 @@ gtk_text_view_ensure_layout (GtkTextView *text_view) g_object_unref (G_OBJECT (ltr_context)); g_object_unref (G_OBJECT (rtl_context)); - style = gtk_text_view_style_values_new (); + style = gtk_text_style_values_new (); gtk_widget_ensure_style (widget); gtk_text_view_set_values_from_style (text_view, style, widget->style); @@ -2421,7 +2421,7 @@ gtk_text_view_ensure_layout (GtkTextView *text_view) gtk_text_layout_set_default_style (text_view->layout, style); - gtk_text_view_style_values_unref (style); + gtk_text_style_values_unref (style); } } diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 1e15a26a8c..e67d3297c5 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3204,7 +3204,7 @@ PangoContext * gtk_widget_create_pango_context (GtkWidget *widget) { PangoContext *context; - char *lang, *p; + char *lang; g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); @@ -3216,14 +3216,7 @@ gtk_widget_create_pango_context (GtkWidget *widget) PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL); pango_context_set_font_description (context, widget->style->font_desc); - lang = g_strdup (setlocale (LC_CTYPE, NULL)); - p = strchr (lang, '.'); - if (p) - *p = '\0'; - p = strchr (lang, '@'); - if (p) - *p = '\0'; - + lang = gtk_get_default_language (); pango_context_set_lang (context, lang); g_free (lang);