summaryrefslogtreecommitdiff
path: root/gtk/gtktextview.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-08-06 03:15:52 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-08-06 03:15:52 +0000
commit3495a602a3fbe7c40d4057996a6dc6e0914d84fe (patch)
tree4555654054e587044162d30055d8389fc9ffb1fc /gtk/gtktextview.c
parent04b562f2de5fb911467ebe1e9ce1db9e1042e8f2 (diff)
downloadgtk+-3495a602a3fbe7c40d4057996a6dc6e0914d84fe.tar.gz
Create new PangoContexts and set them on the layout, to catch changes in
2006-08-05 Matthias Clasen <mclasen@redhat.com> * gtk/gtktextview.c (gtk_text_view_style_set): Create new PangoContexts and set them on the layout, to catch changes in font options. (#348278, Behdad Esfahbod)
Diffstat (limited to 'gtk/gtktextview.c')
-rw-r--r--gtk/gtktextview.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index 66232ca4da..fa2986eeb1 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -3584,6 +3584,7 @@ gtk_text_view_style_set (GtkWidget *widget,
GtkStyle *previous_style)
{
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
+ PangoContext *ltr_context, *rtl_context;
if (GTK_WIDGET_REALIZED (widget))
{
@@ -3595,7 +3596,17 @@ gtk_text_view_style_set (GtkWidget *widget,
gtk_text_view_set_attributes_from_style (text_view,
text_view->layout->default_style,
widget->style);
- gtk_text_layout_default_style_changed (text_view->layout);
+
+
+ ltr_context = gtk_widget_create_pango_context (widget);
+ pango_context_set_base_dir (ltr_context, PANGO_DIRECTION_LTR);
+ rtl_context = gtk_widget_create_pango_context (widget);
+ pango_context_set_base_dir (rtl_context, PANGO_DIRECTION_RTL);
+
+ gtk_text_layout_set_contexts (text_view->layout, ltr_context, rtl_context);
+
+ g_object_unref (ltr_context);
+ g_object_unref (rtl_context);
}
}
@@ -3608,6 +3619,7 @@ gtk_text_view_direction_changed (GtkWidget *widget,
if (text_view->layout)
{
text_view->layout->default_style->direction = gtk_widget_get_direction (widget);
+
gtk_text_layout_default_style_changed (text_view->layout);
}
}