X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=maemo-tweaks.c;h=5cd5b40abdef311ff8b03c18a420f434ebff4945;hb=e3e9818a2a6ebee77a1433abfe06c07a66e3f272;hp=9679937bddc055ae0220c57dcc0d3ff5c129b0e6;hpb=0fdcf3c81081175a78c2ef0b6301863ff8c05ec2;p=tweakr diff --git a/maemo-tweaks.c b/maemo-tweaks.c index 9679937..5cd5b40 100644 --- a/maemo-tweaks.c +++ b/maemo-tweaks.c @@ -10,6 +10,8 @@ #include "libmaemo-tweaks-section/maemo-tweaks-section.h" #include "maemo-tweaks-module-manager.h" +static gboolean save_ret; + GtkWidget *create_dialog (GtkWindow *parent) { GtkWidget *dialog; @@ -27,6 +29,11 @@ GtkWidget *create_dialog (GtkWindow *parent) return dialog; } +void _save (MaemoTweaksSection *section, gboolean *requires_restart) +{ + save_ret &= maemo_tweaks_section_save (section, requires_restart); +} + osso_return_t execute (osso_context_t *osso, gpointer data, gboolean user_activated) { @@ -65,12 +72,18 @@ osso_return_t execute (osso_context_t *osso, gpointer data, } gtk_widget_show_all (GTK_DIALOG (dialog)->vbox); - response = gtk_dialog_run (GTK_DIALOG (dialog)); - if (response == GTK_RESPONSE_OK) + + for (;;) { - /* Save all settings */ - g_list_foreach (sections, (GFunc) maemo_tweaks_section_save, - &requires_restart); + save_ret = TRUE; + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response == GTK_RESPONSE_OK) + { + /* Save all settings */ + g_list_foreach (sections, (GFunc) _save, &requires_restart); + } + if (save_ret) + break; } gtk_widget_destroy (GTK_WIDGET (dialog));