diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-02-10 01:26:35 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-02-10 01:28:23 -0500 |
commit | 49341001e76389f11bf67d756f4742275bc9dcd9 (patch) | |
tree | 01a36757c808a53693f3da6a04fa70c623366271 /editeng/source | |
parent | 863f1bfca71a5eb084931b49393fb7a9c5a0deaf (diff) |
fdo#46707: Don't bother with synonyms for text with mixed script types.
Change-Id: I7922905523406d05f864b10e1ecfd27f3fb5f9d6
Diffstat (limited to 'editeng/source')
-rw-r--r-- | editeng/source/outliner/outlvw.cxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx index 6defd3278592..1b94561a35ae 100644 --- a/editeng/source/outliner/outlvw.cxx +++ b/editeng/source/outliner/outlvw.cxx @@ -29,6 +29,7 @@ #include <editeng/fhgtitem.hxx> #include <svl/style.hxx> +#include <svl/languageoptions.hxx> #include <i18nlangtag/languagetag.hxx> #include <editeng/outliner.hxx> @@ -1446,6 +1447,27 @@ Selection OutlinerView::GetSurroundingTextSelection() const // ===== some code for thesaurus sub menu within context menu // ====================================================================== +namespace { + +bool isSingleScriptType( sal_uInt16 nScriptType ) +{ + sal_uInt8 nScriptCount = 0; + + if (nScriptType & SCRIPTTYPE_LATIN) + ++nScriptCount; + if (nScriptType & SCRIPTTYPE_ASIAN) + ++nScriptCount; + if (nScriptType & SCRIPTTYPE_COMPLEX) + ++nScriptCount; + + if (!nScriptCount || nScriptCount > 1) + return false; + + return true; +} + +} + // returns: true if a word for thesaurus look-up was found at the current cursor position. // The status string will be word + iso language string (e.g. "light#en-US") bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext( @@ -1461,6 +1483,10 @@ bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext( aTextSel = pEditEngine->GetWord( aTextSel, i18n::WordType::DICTIONARY_WORD ); aText = pEditEngine->GetText( aTextSel ); aTextSel.Adjust(); + + if (!isSingleScriptType(pEditEngine->GetScriptType(aTextSel))) + return false; + LanguageType nLang = pEditEngine->GetLanguage( aTextSel.nStartPara, aTextSel.nStartPos ); OUString aLangText( LanguageTag::convertToBcp47( nLang ) ); |