From f033895b527220d52ccad5cf2f0ac0ab51e646ce Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sat, 4 Jun 2022 16:51:20 +0200 Subject: [PATCH] fix(mixers): cleanup callback on parent before being destroyed --- radio/src/gui/colorlcd/model_mixes.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/radio/src/gui/colorlcd/model_mixes.cpp b/radio/src/gui/colorlcd/model_mixes.cpp index 18d5851a2..527dfce4e 100644 --- a/radio/src/gui/colorlcd/model_mixes.cpp +++ b/radio/src/gui/colorlcd/model_mixes.cpp @@ -175,6 +175,7 @@ class MixLineButton : public InputMixButton public: MixLineButton(Window* parent, uint8_t index); void paint(BitmapBuffer* dc) override; + void deleteLater(bool detach = true, bool trash = true) override; protected: size_t getLines() const override; @@ -241,6 +242,13 @@ MixLineButton::MixLineButton(Window* parent, uint8_t index) : lv_obj_add_event_cb(p_obj, mix_draw_mplex, LV_EVENT_DRAW_PART_END, lvobj); } +void MixLineButton::deleteLater(bool detach, bool trash) +{ + lv_obj_t* p_obj = parent->getLvObj(); + lv_obj_remove_event_cb_with_user_data(p_obj, mix_draw_mplex, lvobj); + InputMixButton::deleteLater(detach, trash); +} + size_t MixLineButton::getLines() const { const MixData* mix = mixAddress(index);