[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - editeng/source

Kohei Yoshida kohei.yoshida at collabora.com
Mon Feb 10 13:06:04 PST 2014


 editeng/source/outliner/outlvw.cxx |   23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

New commits:
commit 9ad3a5f665f83ee4f635d37f1fc35b33661ea094
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Feb 10 01:26:35 2014 -0500

    fdo#46707: Don't bother with synonyms for text with mixed script types.
    
    Change-Id: I7922905523406d05f864b10e1ecfd27f3fb5f9d6
    (cherry picked from commit 49341001e76389f11bf67d756f4742275bc9dcd9)
    Reviewed-on: https://gerrit.libreoffice.org/7963
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>

diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx
index c1b8fa8..52429ed 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>
@@ -1559,6 +1560,24 @@ 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;
+
+    return nScriptCount == 1;
+}
+
+}
+
 // 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(
@@ -1574,6 +1593,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( nLang ).getBcp47() );
 


More information about the Libreoffice-commits mailing list