summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx
index a7ff02f1a583..9dba3e9e9066 100644
--- a/xmlsecurity/source/dialogs/certificatechooser.cxx
+++ b/xmlsecurity/source/dialogs/certificatechooser.cxx
@@ -169,6 +169,7 @@ void CertificateChooser::ImplInitialize(bool mbSearch)
}
+ ::std::optional<int> oSelectRow;
uno::Sequence<uno::Reference< security::XCertificate>> xCerts;
for (auto& secContext : mxSecurityContexts)
{
@@ -242,7 +243,9 @@ void CertificateChooser::ImplInitialize(bool mbSearch)
if ( sIssuer == msPreferredKey )
{
if ( meAction == UserAction::Sign || meAction == UserAction::SelectSign )
- m_xCertLB->select(nRow);
+ {
+ oSelectRow.emplace(nRow);
+ }
else if ( meAction == UserAction::Encrypt &&
aUserOpts.GetEncryptToSelf() )
mxEncryptToSelf = xCert;
@@ -255,6 +258,11 @@ void CertificateChooser::ImplInitialize(bool mbSearch)
m_xCertLB->thaw();
m_xCertLB->unselect_all();
+ if (oSelectRow)
+ {
+ m_xCertLB->select(*oSelectRow);
+ }
+
CertificateHighlightHdl(*m_xCertLB);
mbInitialized = true;
}