From b93bcb5ecb7416c8832e57eb436bfdfa70f3593c Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Wed, 20 Mar 2002 22:20:36 +0000 Subject: [PATCH] Patch from Richard Hestilow to fix gtk-font-name changes for widgets that Wed Mar 20 17:11:51 2002 Owen Taylor * gtk/gtkrc.c: Patch from Richard Hestilow to fix gtk-font-name changes for widgets that get the actual default style. (#73709) --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkrc.c | 23 ++++++++++++++++++++--- 7 files changed, 56 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d283f275d..0fe9234dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Mar 20 17:11:51 2002 Owen Taylor + + * gtk/gtkrc.c: Patch from Richard Hestilow to fix + gtk-font-name changes for widgets that get the actual + default style. (#73709) + Wed Mar 20 22:59:23 2002 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height() diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d283f275d..0fe9234dd 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Wed Mar 20 17:11:51 2002 Owen Taylor + + * gtk/gtkrc.c: Patch from Richard Hestilow to fix + gtk-font-name changes for widgets that get the actual + default style. (#73709) + Wed Mar 20 22:59:23 2002 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height() diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index d283f275d..0fe9234dd 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Wed Mar 20 17:11:51 2002 Owen Taylor + + * gtk/gtkrc.c: Patch from Richard Hestilow to fix + gtk-font-name changes for widgets that get the actual + default style. (#73709) + Wed Mar 20 22:59:23 2002 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height() diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index d283f275d..0fe9234dd 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Wed Mar 20 17:11:51 2002 Owen Taylor + + * gtk/gtkrc.c: Patch from Richard Hestilow to fix + gtk-font-name changes for widgets that get the actual + default style. (#73709) + Wed Mar 20 22:59:23 2002 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height() diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index d283f275d..0fe9234dd 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Wed Mar 20 17:11:51 2002 Owen Taylor + + * gtk/gtkrc.c: Patch from Richard Hestilow to fix + gtk-font-name changes for widgets that get the actual + default style. (#73709) + Wed Mar 20 22:59:23 2002 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height() diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index d283f275d..0fe9234dd 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Wed Mar 20 17:11:51 2002 Owen Taylor + + * gtk/gtkrc.c: Patch from Richard Hestilow to fix + gtk-font-name changes for widgets that get the actual + default style. (#73709) + Wed Mar 20 22:59:23 2002 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height() diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index b9d3581cb..7f400b765 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -101,6 +101,7 @@ struct _GtkRcContext gchar *pixmap_path[GTK_RC_MAX_PIXMAP_PATHS]; gint default_priority; + GtkStyle *default_style; }; static GtkRcContext *gtk_rc_context_get (GtkSettings *settings); @@ -534,6 +535,7 @@ gtk_rc_context_get (GtkSettings *settings) context->rc_sets_widget_class = NULL; context->rc_sets_class = NULL; context->rc_files = NULL; + context->default_style = NULL; g_object_get (settings, "gtk-theme-name", &context->theme_name, @@ -1285,9 +1287,17 @@ _gtk_rc_context_get_default_font_name (GtkSettings *settings) if (new_font_name != context->font_name && !(new_font_name && strcmp (context->font_name, new_font_name) == 0)) { + gboolean reset = FALSE; g_free (context->font_name); context->font_name = g_strdup (new_font_name); + if (context->default_style) + { + g_object_unref (G_OBJECT (context->default_style)); + context->default_style = NULL; + reset = TRUE; + } + /* Clear out styles that have been looked up already */ if (realized_style_ht) @@ -1295,9 +1305,11 @@ _gtk_rc_context_get_default_font_name (GtkSettings *settings) g_hash_table_foreach (realized_style_ht, gtk_rc_clear_realized_style, NULL); g_hash_table_destroy (realized_style_ht); realized_style_ht = NULL; - - gtk_rc_reset_widgets (context); + reset = TRUE; } + + if (reset) + gtk_rc_reset_widgets (context); } g_free (new_font_name); @@ -1579,8 +1591,13 @@ gtk_rc_get_style (GtkWidget *widget) if (rc_styles) return gtk_rc_init_style (rc_styles); + else + { + if (!context->default_style) + context->default_style = gtk_style_new (); - return NULL; + return context->default_style; + } } /** -- 2.43.2