diff --git a/src/gui/Window.cc b/src/gui/Window.cc index b681d90..f3b8389 100644 --- a/src/gui/Window.cc +++ b/src/gui/Window.cc @@ -139,6 +139,11 @@ void Window::run_event_loop() while ((!m_exit_requested) && SDL_WaitEvent(&event)) { handle_event(event); + if (m_redraw_requested) + { + m_redraw_requested = false; + redraw(); + } } } diff --git a/src/gui/Window.h b/src/gui/Window.h index 80c7fac..d5bb2d7 100644 --- a/src/gui/Window.h +++ b/src/gui/Window.h @@ -15,6 +15,7 @@ class Window public: bool create(std::shared_ptr buffer); void run_event_loop(); + void request_redraw() { m_redraw_requested = true; } protected: enum : uint32_t @@ -35,6 +36,7 @@ protected: SDL_Window * m_window; bool m_exit_requested; + bool m_redraw_requested; int m_width; int m_height;