Register callbacks after loading the preferences; otherwise they will get

2001-09-29  Richard Hestilow  <hestilow@ximian.com>

	* 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.
This commit is contained in:
Richard Hestilow 2001-09-29 23:55:07 +00:00 committed by Rachel Hestilow
parent 5305c80879
commit b3c1d8c303
2 changed files with 17 additions and 5 deletions

View file

@ -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);
}
}