diff options
Diffstat (limited to 'apps/settings.c')
-rw-r--r-- | apps/settings.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/settings.c b/apps/settings.c index 3c28d316b5..408e377e1a 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -268,6 +268,7 @@ bool settings_load_config(const char* file, bool apply) | |||
268 | char* name; | 268 | char* name; |
269 | char* value; | 269 | char* value; |
270 | int i; | 270 | int i; |
271 | bool theme_changed = false; | ||
271 | fd = open_utf8(file, O_RDONLY); | 272 | fd = open_utf8(file, O_RDONLY); |
272 | if (fd < 0) | 273 | if (fd < 0) |
273 | return false; | 274 | return false; |
@@ -275,13 +276,15 @@ bool settings_load_config(const char* file, bool apply) | |||
275 | while (read_line(fd, line, sizeof line) > 0) | 276 | while (read_line(fd, line, sizeof line) > 0) |
276 | { | 277 | { |
277 | if (!settings_parseline(line, &name, &value)) | 278 | if (!settings_parseline(line, &name, &value)) |
278 | continue; | 279 | continue; |
279 | for(i=0; i<nb_settings; i++) | 280 | for(i=0; i<nb_settings; i++) |
280 | { | 281 | { |
281 | if (settings[i].cfg_name == NULL) | 282 | if (settings[i].cfg_name == NULL) |
282 | continue; | 283 | continue; |
283 | if (!strcasecmp(name,settings[i].cfg_name)) | 284 | if (!strcasecmp(name,settings[i].cfg_name)) |
284 | { | 285 | { |
286 | if (settings[i].flags&F_THEMESETTING) | ||
287 | theme_changed = true; | ||
285 | switch (settings[i].flags&F_T_MASK) | 288 | switch (settings[i].flags&F_T_MASK) |
286 | { | 289 | { |
287 | case F_T_CUSTOM: | 290 | case F_T_CUSTOM: |
@@ -363,7 +366,8 @@ bool settings_load_config(const char* file, bool apply) | |||
363 | { | 366 | { |
364 | settings_save(); | 367 | settings_save(); |
365 | settings_apply(true); | 368 | settings_apply(true); |
366 | settings_apply_skins(); | 369 | if (theme_changed) |
370 | settings_apply_skins(); | ||
367 | } | 371 | } |
368 | return true; | 372 | return true; |
369 | } | 373 | } |