From 06bd2fb2d5f39eb5d6344c87954981bee94758ad Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 4 Mar 2019 10:57:26 +0100 Subject: [PATCH] GTableView: Allow initiating keyboard navigation with no current selection. --- LibGUI/GTableView.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/LibGUI/GTableView.cpp b/LibGUI/GTableView.cpp index 3734adfda6..ea6c76fcda 100644 --- a/LibGUI/GTableView.cpp +++ b/LibGUI/GTableView.cpp @@ -198,7 +198,11 @@ void GTableView::keydown_event(GKeyEvent& event) return; } if (event.key() == KeyCode::Key_Up) { - GModelIndex new_index(model.selected_index().row() - 1, model.selected_index().column()); + GModelIndex new_index; + if (model.selected_index().is_valid()) + new_index = { model.selected_index().row() - 1, model.selected_index().column() }; + else + new_index = { 0, 0 }; if (model.is_valid(new_index)) { model.set_selected_index(new_index); scroll_into_view(new_index, Orientation::Vertical); @@ -207,7 +211,11 @@ void GTableView::keydown_event(GKeyEvent& event) return; } if (event.key() == KeyCode::Key_Down) { - GModelIndex new_index(model.selected_index().row() + 1, model.selected_index().column()); + GModelIndex new_index; + if (model.selected_index().is_valid()) + new_index = { model.selected_index().row() + 1, model.selected_index().column() }; + else + new_index = { 0, 0 }; if (model.is_valid(new_index)) { model.set_selected_index(new_index); scroll_into_view(new_index, Orientation::Vertical);