Fix ResizableSplit handling keyboard navigation incorrectly (#842)

Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
This commit is contained in:
na-trium-144
2024-04-19 00:28:28 +09:00
committed by GitHub
parent e03a0797be
commit 0dfd59bd09
3 changed files with 55 additions and 5 deletions

View File

@@ -19,7 +19,7 @@ namespace ftxui {
namespace {
Component BasicComponent() {
return Renderer([] { return text(""); });
return Renderer([](bool focused) { return text(""); });
}
Event MousePressed(int x, int y) {
@@ -207,5 +207,32 @@ TEST(ResizableSplit, BasicBottomWithCustomSeparator) {
EXPECT_EQ(position, 2);
}
TEST(ResizableSplit, NavigationVertical) {
int position = 0;
auto component_top = BasicComponent();
auto component_bottom = BasicComponent();
auto component =
ResizableSplitTop(component_top, component_bottom, &position);
EXPECT_TRUE(component_top->Active());
EXPECT_FALSE(component_bottom->Active());
EXPECT_FALSE(component->OnEvent(Event::ArrowRight));
EXPECT_TRUE(component_top->Active());
EXPECT_FALSE(component_bottom->Active());
EXPECT_TRUE(component->OnEvent(Event::ArrowDown));
EXPECT_FALSE(component_top->Active());
EXPECT_TRUE(component_bottom->Active());
EXPECT_FALSE(component->OnEvent(Event::ArrowDown));
EXPECT_FALSE(component_top->Active());
EXPECT_TRUE(component_bottom->Active());
EXPECT_TRUE(component->OnEvent(Event::ArrowUp));
EXPECT_TRUE(component_top->Active());
EXPECT_FALSE(component_bottom->Active());
}
} // namespace ftxui
// NOLINTEND