diff --git a/include/ftxui/component/container.hpp b/include/ftxui/component/container.hpp index 97c6d20e..51395ed3 100644 --- a/include/ftxui/component/container.hpp +++ b/include/ftxui/component/container.hpp @@ -37,7 +37,7 @@ class Container : public Component { RenderHandler render_handler_; int selected_ = 0; - int* selector_ = &selected_; + int* selector_ = nullptr; }; } // namespace ftxui diff --git a/src/ftxui/component/container.cpp b/src/ftxui/component/container.cpp index b9743c49..b4b26c5c 100644 --- a/src/ftxui/component/container.cpp +++ b/src/ftxui/component/container.cpp @@ -42,7 +42,9 @@ bool Container::OnEvent(Event event) { Component* Container::ActiveChild() { if (children_.size() == 0) return nullptr; - return children_[*selector_ % children_.size()]; + + int selected = selector_ ? *selector_ : selected_; + return children_[selected % children_.size()]; } bool Container::VerticalEvent(Event event) {