diff options
Diffstat (limited to 'src/widgets/itemviews/qtableview.cpp')
-rw-r--r-- | src/widgets/itemviews/qtableview.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp index a252428a81..2bf4c62593 100644 --- a/src/widgets/itemviews/qtableview.cpp +++ b/src/widgets/itemviews/qtableview.cpp @@ -1821,8 +1821,15 @@ QModelIndex QTableView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifi return QModelIndex(); QModelIndex result = d->model->index(logicalRow, logicalColumn, d->root); - if (!d->isRowHidden(logicalRow) && !d->isColumnHidden(logicalColumn) && d->isIndexEnabled(result)) + if (!d->isRowHidden(logicalRow) && !d->isColumnHidden(logicalColumn) && d->isIndexEnabled(result)) { + if (d->hasSpans()) { + QSpanCollection::Span span = d->span(result.row(), result.column()); + if (span.width() > 1 || span.height() > 1) { + result = d->model->sibling(span.top(), span.left(), result); + } + } return result; + } return QModelIndex(); } |