diff options
Diffstat (limited to 'src/widgets/itemviews/qabstractitemview.cpp')
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 771753b7da..77e683643e 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -2753,10 +2753,14 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE editor->removeEventFilter(d->delegateForIndex(index)); d->removeEditor(editor); } - if (hadFocus) - setFocus(); // this will send a focusLost event to the editor - else + if (hadFocus) { + if (focusPolicy() != Qt::NoFocus) + setFocus(); // this will send a focusLost event to the editor + else + editor->clearFocus(); + } else { d->checkPersistentEditorFocus(); + } QPointer<QWidget> ed = editor; QApplication::sendPostedEvents(editor, 0); |