From 0ffd772d28bdf2fb1f0ef5abbb6fff17223edee9 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Sat, 2 Apr 2022 12:30:30 +0200 Subject: [PATCH] Fix header layout and meters reset if a header column is empty Closes #880 Patch from BenBE and cgzones --- Settings.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Settings.c b/Settings.c index 54ae0515..006be97f 100644 --- a/Settings.c +++ b/Settings.c @@ -111,14 +111,21 @@ static void Settings_readMeterModes(Settings* this, const char* line, unsigned i static bool Settings_validateMeters(Settings* this) { const size_t colCount = HeaderLayout_getColumns(this->hLayout); + bool anyMeter = false; + for (size_t column = 0; column < colCount; column++) { char** names = this->hColumns[column].names; const int* modes = this->hColumns[column].modes; const size_t len = this->hColumns[column].len; - if (!names || !modes || !len) + if (!len) + continue; + + if (!names || !modes) return false; + anyMeter |= !!len; + // Check for each mode there is an entry with a non-NULL name for (size_t meterIdx = 0; meterIdx < len; meterIdx++) if (!names[meterIdx]) @@ -128,7 +135,7 @@ static bool Settings_validateMeters(Settings* this) { return false; } - return true; + return anyMeter; } static void Settings_defaultMeters(Settings* this, unsigned int initialCpuCount) {