diff --git a/core/src/gui/widgets/waterfall.cpp b/core/src/gui/widgets/waterfall.cpp index f2556905..8126ee6d 100644 --- a/core/src/gui/widgets/waterfall.cpp +++ b/core/src/gui/widgets/waterfall.cpp @@ -717,18 +717,23 @@ namespace ImGui { void WaterFall::onResize() { std::lock_guard lck(latestFFTMtx); std::lock_guard lck2(smoothingBufMtx); - // return if widget is too small - if (widgetSize.x < 100 || widgetSize.y < 100) { - return; - } + // Check if the size is valid. This is because some settings might be changed before being first displayed. + if (widgetSize.x < 1.0f || widgetSize.y < 1.0f) { return; } + + // Set a minimim size + widgetSize.x = std::max(widgetSize.x, 100.0f*style::uiScale); + widgetSize.y = std::max(widgetSize.y, 100.0f*style::uiScale); + + // Save last height int lastWaterfallHeight = waterfallHeight; + // Compute sizes if (waterfallVisible) { FFTAreaHeight = std::min(FFTAreaHeight, widgetSize.y - (50.0f * style::uiScale)); newFFTAreaHeight = FFTAreaHeight; fftHeight = FFTAreaHeight - (50.0f * style::uiScale); - waterfallHeight = widgetSize.y - fftHeight - (50.0f * style::uiScale) - 2; + waterfallHeight = std::max(1, widgetSize.y - fftHeight - (50.0f * style::uiScale) - 2); } else { fftHeight = widgetSize.y - (50.0f * style::uiScale);