svtools/source/control/ctrlbox.cxx | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-)
New commits: commit cf1a41c45abd28fb8ef5613338fcb9807d244f9d Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Apr 25 15:55:31 2022 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Mon Apr 25 18:09:24 2022 +0200 Resolves: tdf#141441 get and set selected entry when "unfrozen" Change-Id: I4229460fb27ae3dc133c0f6a53c7792a87bf4db3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133389 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx index d679b7c46160..411a2dd4961d 100644 --- a/svtools/source/control/ctrlbox.cxx +++ b/svtools/source/control/ctrlbox.cxx @@ -844,9 +844,10 @@ FontStyleBox::FontStyleBox(std::unique_ptr<weld::ComboBox> p) void FontStyleBox::Fill( std::u16string_view rName, const FontList* pList ) { - m_xComboBox->freeze(); OUString aOldText = m_xComboBox->get_active_text(); int nPos = m_xComboBox->get_active(); + + m_xComboBox->freeze(); m_xComboBox->clear(); // does a font with this name already exist? @@ -949,19 +950,6 @@ void FontStyleBox::Fill( std::u16string_view rName, const FontList* pList ) if ( bNormal || bItalic || bBold ) m_xComboBox->append_text(pList->GetBoldItalicStr()); } - if (!aOldText.isEmpty()) - { - int nFound = m_xComboBox->find_text(aOldText); - if (nFound != -1) - m_xComboBox->set_active(nFound); - else - { - if (nPos >= m_xComboBox->get_count()) - m_xComboBox->set_active(0); - else - m_xComboBox->set_active(nPos); - } - } } else { @@ -970,7 +958,16 @@ void FontStyleBox::Fill( std::u16string_view rName, const FontList* pList ) m_xComboBox->append_text(pList->GetItalicStr()); m_xComboBox->append_text(pList->GetBoldStr()); m_xComboBox->append_text(pList->GetBoldItalicStr()); - if (!aOldText.isEmpty()) + } + + m_xComboBox->thaw(); + + if (!aOldText.isEmpty()) + { + int nFound = m_xComboBox->find_text(aOldText); + if (nFound != -1) + m_xComboBox->set_active(nFound); + else { if (nPos >= m_xComboBox->get_count()) m_xComboBox->set_active(0); @@ -978,7 +975,6 @@ void FontStyleBox::Fill( std::u16string_view rName, const FontList* pList ) m_xComboBox->set_active(nPos); } } - m_xComboBox->thaw(); } FontSizeBox::FontSizeBox(std::unique_ptr<weld::ComboBox> p)