Index: src/ch/OptionsDlg.cpp =================================================================== diff -u -N -ra008bec4207ec5e71dfa8fd85cfe71d72e996a48 -r306fbe693c70290af9de9a5779084a697de22d75 --- src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision a008bec4207ec5e71dfa8fd85cfe71d72e996a48) +++ src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 306fbe693c70290af9de9a5779084a697de22d75) @@ -39,7 +39,8 @@ // COptionsDlg dialog COptionsDlg::COptionsDlg(CWnd* pParent /*=nullptr*/) - :ictranslate::CLanguageDialog(IDD_OPTIONS_DIALOG, pParent, &m_bLock) + :ictranslate::CLanguageDialog(IDD_OPTIONS_DIALOG, pParent, &m_bLock), + m_spLog(logger::MakeLogger(GetLogFileData(), L"OptionsDlg")) { } @@ -211,6 +212,7 @@ ApplyProperties(); SendClosingNotify(); + CLanguageDialog::OnOK(); } @@ -473,6 +475,18 @@ rConfig.ResumeNotifications(); rConfig.Write(); + + LOG_INFO(m_spLog) << L"Updating shell extension configuration"; + try + { + TShellExtensionConfigPtr spConfig = GetShellExtensionConfig(); + if(spConfig) + spConfig->PrepareConfig(); + } + catch(const std::exception& e) + { + LOG_INFO(m_spLog) << L"Failed to set shell extension configuration. Error: " << e.what(); + } } void COptionsDlg::OnCancel()