From b3c1d8c30355c7c04a475919ead0aee4a0dd5489 Mon Sep 17 00:00:00 2001 From: Richard Hestilow Date: Sat, 29 Sep 2001 23:55:07 +0000 Subject: [PATCH] Register callbacks after loading the preferences; otherwise they will get 2001-09-29 Richard Hestilow * prefs-widget.c (prefs_widget_set_arg): Register callbacks after loading the preferences; otherwise they will get triggered unnecessarily. (selected_cb): Only trigger a change if there really was one. Fixes bug #9161. --- capplets/ui-properties/ChangeLog | 8 ++++++++ capplets/ui-properties/prefs-widget.c | 14 +++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/capplets/ui-properties/ChangeLog b/capplets/ui-properties/ChangeLog index 8805e7b71..7a5fdd1f3 100644 --- a/capplets/ui-properties/ChangeLog +++ b/capplets/ui-properties/ChangeLog @@ -1,3 +1,11 @@ +2001-09-29 Richard Hestilow + + * prefs-widget.c (prefs_widget_set_arg): Register + callbacks after loading the preferences; otherwise they will + get triggered unnecessarily. + (selected_cb): Only trigger a change if there really was one. + Fixes bug #9161. + 2001-07-27 Bradford Hovinen * RELEASE : 1.5.2 diff --git a/capplets/ui-properties/prefs-widget.c b/capplets/ui-properties/prefs-widget.c index 3068e747a..6c314ada3 100644 --- a/capplets/ui-properties/prefs-widget.c +++ b/capplets/ui-properties/prefs-widget.c @@ -208,14 +208,14 @@ prefs_widget_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) if (prefs_widget->dialog_data) { gtk_object_ref (GTK_OBJECT (prefs_widget->dialog_data)); - register_callbacks (prefs_widget, - prefs_widget->dialog_data); if (prefs_widget->prefs) gtk_signal_emit (GTK_OBJECT (prefs_widget), prefs_widget_signals [READ_PREFERENCES], prefs_widget->prefs, NULL); + register_callbacks (prefs_widget, + prefs_widget->dialog_data); } break; @@ -449,8 +449,12 @@ selected_cb (GtkMenuItem *mi, PrefsWidget *prefs_widget) widget_desc = find_widget_desc_with_name (prefs_widget, widget_name); g_return_if_fail (widget_desc != NULL); - widget_desc->set_func (prefs_widget->prefs, index); + /* Only set it if it really changed */ + if (widget_desc->get_func (prefs_widget->prefs) != index) + { + widget_desc->set_func (prefs_widget->prefs, index); - preferences_changed (prefs_widget->prefs); - capplet_widget_state_changed (CAPPLET_WIDGET (prefs_widget), TRUE); + preferences_changed (prefs_widget->prefs); + capplet_widget_state_changed (CAPPLET_WIDGET (prefs_widget), TRUE); + } }