diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-07-19 12:20:47 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-07-19 16:52:49 +0200 |
commit | e8bf2cb72dbe55f4e9ac7ace48e644a934cfc503 (patch) | |
tree | 3ab85fcae6ff04d82a95b328da88d3f85c62078d /cui | |
parent | 9c4d1503ba0ff97cdb113653b8dfe3ce66798ad5 (diff) |
tdf#118304 reselect current glyph on changing font
preview glyph will rerender the glyph if its there, or the glyph description
changes to "missing glyph" if its not there anymore. Don't auto select
first entry of the subset when font changes, leave it as unselected and
let the glyph determine what's ends up there
Change-Id: I33d7dd3a071100175ac9bc7c7e9d44684a1aff28
Reviewed-on: https://gerrit.libreoffice.org/57724
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/dialogs/cuicharmap.cxx | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx index 67efede90e32..4caf324c9ecd 100644 --- a/cui/source/dialogs/cuicharmap.cxx +++ b/cui/source/dialogs/cuicharmap.cxx @@ -471,6 +471,8 @@ void SvxCharacterMap::init() else if (m_xFontLB->get_count() ) m_xFontLB->set_active(0); FontSelectHdl(*m_xFontLB); + if (m_xSubsetLB->get_count()) + m_xSubsetLB->set_active(0); m_xFontLB->connect_changed(LINK( this, SvxCharacterMap, FontSelectHdl)); m_xSubsetLB->connect_changed(LINK( this, SvxCharacterMap, SubsetSelectHdl)); @@ -603,6 +605,8 @@ void SvxCharacterMap::SetCharFont( const vcl::Font& rFont ) m_xFontLB->set_active_text(aTmp.GetFamilyName()); aFont = aTmp; FontSelectHdl(*m_xFontLB); + if (m_xSubsetLB->get_count()) + m_xSubsetLB->set_active(0); } void SvxCharacterMap::fillAllSubsets(weld::ComboBoxText& rListBox) @@ -679,14 +683,10 @@ IMPL_LINK_NOARG(SvxCharacterMap, FontSelectHdl, weld::ComboBoxText&, void) pSubsetMap.reset(new SubsetMap( xFontCharMap )); // update subset listbox for new font's unicode subsets - bool bFirst = true; for (auto const& subset : pSubsetMap->GetSubsetMap()) { m_xSubsetLB->append(OUString::number(reinterpret_cast<sal_uInt64>(&subset)), subset.GetName()); // NOTE: subset must live at least as long as the selected font - if (bFirst) - m_xSubsetLB->set_active(0); - bFirst = false; } if (m_xSubsetLB->get_count() <= 1) @@ -695,6 +695,9 @@ IMPL_LINK_NOARG(SvxCharacterMap, FontSelectHdl, weld::ComboBoxText&, void) m_xSubsetText->set_sensitive(bNeedSubset); m_xSubsetLB->set_sensitive(bNeedSubset); + + // tdf#118304 reselect current glyph to see if its still there in new font + selectCharByCode(Radix::hexadecimal); } void SvxCharacterMap::toggleSearchView(bool state) @@ -998,14 +1001,11 @@ IMPL_LINK_NOARG(SvxCharacterMap, CharHighlightHdl, SvxShowCharSet*, void) m_xSubsetLB->set_active(-1); } - if(m_xShowSet->HasFocus() || m_xHexCodeText->has_focus() || m_xDecimalCodeText->has_focus() ) - { - m_aShowChar.SetText( aText ); - m_aShowChar.SetFont( aFont ); - m_aShowChar.Invalidate(); + m_aShowChar.SetText( aText ); + m_aShowChar.SetFont( aFont ); + m_aShowChar.Invalidate(); - setFavButtonState(aText, aFont.GetFamilyName()); - } + setFavButtonState(aText, aFont.GetFamilyName()); } IMPL_LINK_NOARG(SvxCharacterMap, SearchCharHighlightHdl, SvxShowCharSet*, void) |