From 640b14c08ccc885817cc697bfd1cde24479b8126 Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Mon, 1 Mar 2021 10:19:20 +0100 Subject: [PATCH] Fix inability to reset filetype colors without restarting 0ce42df prevented read_color_theme_file() from being executed when applying settings (from a cfg file) if the filetype colors setting was set to "-". Resetting custom filetype colors happens in that function though and thus wouldn't work. You had to restart Rockbox for the setting to be applied (at which point read_color_theme_file() is called from filetype_init() which is called by the init() function in main.c) The safety check has been moved from settings.c directly into read_color_theme_file(). This has the added advantage that it will also apply during the init process where there existed no check before (prevents the problem mentioned in 2e3a8c7). Change-Id: I547fe180f0bac79889bf2c44778bb1cc4f9d4307 --- apps/filetypes.c | 2 ++ apps/settings.c | 10 +++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/filetypes.c b/apps/filetypes.c index 280cd8c4b4..0aebc7855b 100644 --- a/apps/filetypes.c +++ b/apps/filetypes.c @@ -257,6 +257,8 @@ void read_color_theme_file(void) { for (i = 0; i < MAX_FILETYPES; i++) { custom_colors[i] = -1; } + if (!global_settings.colors_file[0] || global_settings.colors_file[0] == '-') + return; snprintf(buffer, MAX_PATH, THEME_DIR "/%s.colours", global_settings.colors_file); fd = open(buffer, O_RDONLY); diff --git a/apps/settings.c b/apps/settings.c index 1a93a4de54..8b6db13234 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -931,13 +931,9 @@ void settings_apply(bool read_disk) CHART("read_color_theme_file"); - read_color_theme_file(); - CHART("read_color_theme_file"); + read_color_theme_file(); + CHART("