diff --git a/cockatrice/src/interface/widgets/utility/card_completer_styler.cpp b/cockatrice/src/interface/widgets/utility/card_completer_styler.cpp index e7a4a7588..fef1dcbf7 100644 --- a/cockatrice/src/interface/widgets/utility/card_completer_styler.cpp +++ b/cockatrice/src/interface/widgets/utility/card_completer_styler.cpp @@ -176,11 +176,11 @@ void CardCompleterStyler::ensureClosestSelected() } const int currentRow = popup->currentIndex().row(); - const int closestRow = 0; + const int closestRow = rowCount - 1; if (currentRow != closestRow) { popup->selectionModel()->setCurrentIndex(completionModel->index(closestRow, completer->completionColumn()), - QItemSelectionModel::SelectCurrent); + QItemSelectionModel::NoUpdate); } } diff --git a/cockatrice/src/interface/widgets/utility/line_edit_completer.cpp b/cockatrice/src/interface/widgets/utility/line_edit_completer.cpp index e32dc25e3..98ee5063f 100644 --- a/cockatrice/src/interface/widgets/utility/line_edit_completer.cpp +++ b/cockatrice/src/interface/widgets/utility/line_edit_completer.cpp @@ -71,7 +71,8 @@ void LineEditCompleter::focusOutEvent(QFocusEvent *e) if (popupWasVisible && e->reason() == Qt::TabFocusReason) { // Refocus the edit so Tab doesn't move focus away - setFocus(); + // Use a queued connection to ensure focus is restored after the focus change completes + QMetaObject::invokeMethod(this, "setFocus", Qt::QueuedConnection); e->accept(); return; }