diff --git a/src/popupdisplay.cpp b/src/popupdisplay.cpp index 3513bc3..c3b5b46 100644 --- a/src/popupdisplay.cpp +++ b/src/popupdisplay.cpp @@ -19,17 +19,11 @@ void PopupDisplay::initScreen(TftInterface &tft) initOverlay(tft); } -void PopupDisplay::redraw(TftInterface &tft) -{ - if (m_wantsClose) - closeOverlay(tft); - else - Base::redraw(tft); -} - void PopupDisplay::closeOverlay() { - m_wantsClose = true; + espgui::changeScreenCallback = [this](espgui::TftInterface &tft){ + closeOverlay(tft); + }; } void PopupDisplay::closeOverlay(TftInterface &tft) diff --git a/src/popupdisplay.h b/src/popupdisplay.h index d2b37a2..bd2dabc 100644 --- a/src/popupdisplay.h +++ b/src/popupdisplay.h @@ -17,16 +17,12 @@ public: void initScreen(TftInterface &tft) override; - void redraw(TftInterface &tft) override; - virtual void initOverlay(TftInterface &tft) = 0; void closeOverlay(); void closeOverlay(TftInterface &tft); private: std::unique_ptr m_lastDisplay; - - bool m_wantsClose{}; }; } // namespace espgui