summaryrefslogtreecommitdiff
path: root/gtk/gtksettings.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-11-25 22:29:32 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-11-25 22:29:32 +0000
commitbc96f137bea80b46b9cdfe5604645dc2d0fa4798 (patch)
treefa8da9b13ec77543a8d2924091f1f3c60b229663 /gtk/gtksettings.c
parent8c782e730deb42b5b313536b41c1a640062eb465 (diff)
downloadgtk+-bc96f137bea80b46b9cdfe5604645dc2d0fa4798.tar.gz
Fix missing adjustments for new type of
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtksettings.c (gtk_settings_set_property_value): Fix missing adjustments for new type of gtk_settings_set_property_value_internal(). (#99436, Iain Holmes.) * gtk/gtksettings.c (apply_queued_setting): Set the source _after_ we call g_object_set_property, or otherwise we get the APPLICATION source from our setter implemenatation.
Diffstat (limited to 'gtk/gtksettings.c')
-rw-r--r--gtk/gtksettings.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index a9b7537e03..ae5ed3cb72 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -343,12 +343,11 @@ gtk_settings_get_property (GObject *object,
g_value_type_transformable (G_TYPE_STRING, G_VALUE_TYPE (value)) ||
g_value_type_transformable (GDK_TYPE_COLOR, G_VALUE_TYPE (value)))
{
- if (settings->property_values[property_id - 1].source == GTK_SETTINGS_SOURCE_APPLICATION)
+ if (settings->property_values[property_id - 1].source == GTK_SETTINGS_SOURCE_APPLICATION ||
+ !gdk_screen_get_setting (settings->screen, pspec->name, value))
g_value_copy (&settings->property_values[property_id - 1].value, value);
- else if (gdk_screen_get_setting (settings->screen, pspec->name, value))
- g_param_value_validate (pspec, value);
else
- g_value_copy (&settings->property_values[property_id - 1].value, value);
+ g_param_value_validate (pspec, value);
}
else
{
@@ -500,8 +499,8 @@ apply_queued_setting (GtkSettings *data,
if (_gtk_settings_parse_convert (parser, &qvalue->public.value,
pspec, &tmp_value))
{
- data->property_values[pspec->param_id - 1].source = qvalue->source;
g_object_set_property (G_OBJECT (data), pspec->name, &tmp_value);
+ data->property_values[pspec->param_id - 1].source = qvalue->source;
}
else
{
@@ -689,7 +688,8 @@ gtk_settings_set_property_value (GtkSettings *settings,
g_return_if_fail (new_value != NULL);
g_return_if_fail (new_value->origin != NULL);
- gtk_settings_set_property_value_internal (settings, prop_name, new_value, FALSE);
+ gtk_settings_set_property_value_internal (settings, prop_name, new_value,
+ GTK_SETTINGS_SOURCE_APPLICATION);
}
void
@@ -702,7 +702,8 @@ _gtk_settings_set_property_value_from_rc (GtkSettings *settings,
g_return_if_fail (new_value != NULL);
g_return_if_fail (new_value->origin != NULL);
- gtk_settings_set_property_value_internal (settings, prop_name, new_value, TRUE);
+ gtk_settings_set_property_value_internal (settings, prop_name, new_value,
+ GTK_SETTINGS_SOURCE_RC_FILE);
}
void