@@ -135,7 +135,7 @@ ui::FocusLayout::handle_event_result(const std::optional<ui::Widget::InnerState>
135135
136136 auto value = result.value ();
137137
138- switch (std::get< 0 >( value) ) {
138+ switch (value. handle_type ) {
139139 case ui::EventHandleType::RequestFocus: {
140140 const auto focusable = as_focusable (widget);
141141 if (not focusable.has_value ()) {
@@ -160,8 +160,9 @@ ui::FocusLayout::handle_event_result(const std::optional<ui::Widget::InnerState>
160160
161161 // if the layout itself has not focus, it needs focus itself too
162162 if (not has_focus ()) {
163- return ui::Widget::InnerState{ ui::EventHandleType::RequestFocus, std::get<1 >(value),
164- std::get<2 >(value) };
163+ return ui::Widget::InnerState{ .handle_type = ui::EventHandleType::RequestFocus,
164+ .widget = value.widget ,
165+ .data = value.data };
165166 }
166167
167168
@@ -192,22 +193,26 @@ ui::FocusLayout::handle_event_result(const std::optional<ui::Widget::InnerState>
192193 const auto test_forward = try_set_next_focus (FocusChangeDirection::Forward);
193194 if (not test_forward) {
194195 if (m_options.wrap_around ) {
195- return ui::Widget::InnerState{ ui::EventHandleType::RequestUnFocus, std::get<1 >(value),
196- std::get<2 >(value) };
196+ return ui::Widget::InnerState{ .handle_type = ui::EventHandleType::RequestUnFocus,
197+ .widget = value.widget ,
198+ .data = value.data };
197199 }
198200
199201 const auto test_backwards = try_set_next_focus (FocusChangeDirection::Backward);
200202 if (not test_backwards) {
201- return ui::Widget::InnerState{ ui::EventHandleType::RequestUnFocus, std::get<1 >(value),
202- std::get<2 >(value) };
203+ return ui::Widget::InnerState{ .handle_type = ui::EventHandleType::RequestUnFocus,
204+ .widget = value.widget ,
205+ .data = value.data };
203206 }
204207 }
205208
206209 return std::nullopt ;
207210 }
208211 case ui::EventHandleType::RequestAction: {
209212 // just forward it
210- return ui::Widget::InnerState{ ui::EventHandleType::RequestAction, std::get<1 >(value), std::get<2 >(value) };
213+ return ui::Widget::InnerState{ .handle_type = ui::EventHandleType::RequestAction,
214+ .widget = value.widget ,
215+ .data = value.data };
211216 }
212217 default :
213218 UNREACHABLE ();
0 commit comments