summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-07-19 12:20:47 +0100
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2018-08-02 21:18:02 +0200
commit9844eef47a030435fa3d4177cb93b09d05a53fd2 (patch)
tree1ed81ec39e6301a88a903817233f1560ea284753
parent30ef03e964feffcc84b8a2c49bab07f2134f637a (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> (cherry picked from commit e8bf2cb72dbe55f4e9ac7ace48e644a934cfc503) Reviewed-on: https://gerrit.libreoffice.org/57765 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> Reviewed-by: Eike Rathke <erack@redhat.com> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
-rwxr-xr-xcui/source/dialogs/cuicharmap.cxx22
1 files changed, 11 insertions, 11 deletions
diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx
index d65ec3fe1926..7837e6fa6f5d 100755
--- 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)
@@ -680,14 +684,10 @@ IMPL_LINK_NOARG(SvxCharacterMap, FontSelectHdl, weld::ComboBoxText&, void)
pSubsetMap = 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)
@@ -696,6 +696,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)
@@ -999,14 +1002,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)