From 0cd534ade0453d55b1ca5584329977d7f869b784 Mon Sep 17 00:00:00 2001 From: RocketGod <57732082+RocketGod-git@users.noreply.github.com> Date: Thu, 3 Apr 2025 10:50:46 -0700 Subject: [PATCH] Make the background paint to black again after opening fq modal --- firmware/application/external/gfxeq/ui_gfxeq.cpp | 12 ++++++++++++ firmware/application/external/gfxeq/ui_gfxeq.hpp | 3 +++ 2 files changed, 15 insertions(+) diff --git a/firmware/application/external/gfxeq/ui_gfxeq.cpp b/firmware/application/external/gfxeq/ui_gfxeq.cpp index fa28f2f21..179c78eb9 100644 --- a/firmware/application/external/gfxeq/ui_gfxeq.cpp +++ b/firmware/application/external/gfxeq/ui_gfxeq.cpp @@ -69,6 +69,15 @@ void gfxEQView::focus() { field_frequency.focus(); } +void gfxEQView::on_show() { + needs_background_redraw = true; + set_dirty(); +} + +void gfxEQView::on_hide() { + needs_background_redraw = true; +} + void gfxEQView::start() { if (!running) { running = true; @@ -128,6 +137,9 @@ void gfxEQView::paint(Painter& painter) { initialized = true; start(); painter.fill_rectangle({0, header_height, SCREEN_WIDTH, RENDER_HEIGHT}, Color(0, 0, 0)); + } else if (needs_background_redraw) { + painter.fill_rectangle({0, header_height, SCREEN_WIDTH, RENDER_HEIGHT}, Color(0, 0, 0)); + needs_background_redraw = false; } render_equalizer(painter); } diff --git a/firmware/application/external/gfxeq/ui_gfxeq.hpp b/firmware/application/external/gfxeq/ui_gfxeq.hpp index bbcf19d5f..7e24874b3 100644 --- a/firmware/application/external/gfxeq/ui_gfxeq.hpp +++ b/firmware/application/external/gfxeq/ui_gfxeq.hpp @@ -32,6 +32,8 @@ class gfxEQView : public View { void focus() override; std::string title() const override { return "gfxEQ"; } + void on_show() override; + void on_hide() override; void paint(Painter& painter) override; @@ -52,6 +54,7 @@ class gfxEQView : public View { NavigationView& nav_; bool initialized{false}; + bool needs_background_redraw{false}; std::vector bar_heights; std::vector prev_bar_heights; bool running{false};