xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit b7a6d5752a3f60dc29cde6ea05ee6b7112dc4780
Author:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
AuthorDate: Thu Jul 11 17:54:15 2024 +0200
Commit:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
CommitDate: Thu Jul 11 20:57:40 2024 +0200

    tdf#108828 Show certificate selector again after cancelling password dialog
    
    Change-Id: I0a57204c1885ca300d22832e5469d8918aec9ba6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170384
    Tested-by: Jenkins
    Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>

diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx 
b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index da396d7ba0a7..9c3081cdca34 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -466,7 +466,7 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, AddButtonHdl, 
weld::Button&, void)
             xSecContexts.push_back(maSignatureManager.getGpgSecurityContext());
 
         std::unique_ptr<CertificateChooser> aChooser = 
CertificateChooser::getInstance(m_xDialog.get(), std::move(xSecContexts), 
CertificateChooserUserAction::Sign);
-        if (aChooser->run() == RET_OK)
+        while (aChooser->run() == RET_OK)
         {
             sal_Int32 nSecurityId;
             if 
(!maSignatureManager.add(aChooser->GetSelectedCertificates()[0], 
aChooser->GetSelectedSecurityContext(),
@@ -491,6 +491,7 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, AddButtonHdl, 
weld::Button&, void)
                 mbVerifySignatures = true;
                 ImplGetSignatureInformations(/*bUseTempStream=*/true, 
/*bCacheLastSignature=*/false);
                 ImplFillSignaturesBox();
+                break;
             }
         }
     }

Reply via email to