Kaydet (Commit) 49341001 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

fdo#46707: Don't bother with synonyms for text with mixed script types.

Change-Id: I7922905523406d05f864b10e1ecfd27f3fb5f9d6
üst 863f1bfc
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <editeng/fhgtitem.hxx> #include <editeng/fhgtitem.hxx>
#include <svl/style.hxx> #include <svl/style.hxx>
#include <svl/languageoptions.hxx>
#include <i18nlangtag/languagetag.hxx> #include <i18nlangtag/languagetag.hxx>
#include <editeng/outliner.hxx> #include <editeng/outliner.hxx>
...@@ -1446,6 +1447,27 @@ Selection OutlinerView::GetSurroundingTextSelection() const ...@@ -1446,6 +1447,27 @@ Selection OutlinerView::GetSurroundingTextSelection() const
// ===== some code for thesaurus sub menu within context menu // ===== 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. // 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") // The status string will be word + iso language string (e.g. "light#en-US")
bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext( bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext(
...@@ -1461,6 +1483,10 @@ bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext( ...@@ -1461,6 +1483,10 @@ bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext(
aTextSel = pEditEngine->GetWord( aTextSel, i18n::WordType::DICTIONARY_WORD ); aTextSel = pEditEngine->GetWord( aTextSel, i18n::WordType::DICTIONARY_WORD );
aText = pEditEngine->GetText( aTextSel ); aText = pEditEngine->GetText( aTextSel );
aTextSel.Adjust(); aTextSel.Adjust();
if (!isSingleScriptType(pEditEngine->GetScriptType(aTextSel)))
return false;
LanguageType nLang = pEditEngine->GetLanguage( aTextSel.nStartPara, aTextSel.nStartPos ); LanguageType nLang = pEditEngine->GetLanguage( aTextSel.nStartPara, aTextSel.nStartPos );
OUString aLangText( LanguageTag::convertToBcp47( nLang ) ); OUString aLangText( LanguageTag::convertToBcp47( nLang ) );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment