commit acc771b2123797c42463c1a564f4934f2b3bef41
Author: Georg Baum <[email protected]>
Date:   Fri Nov 14 19:09:34 2014 +0100

    Fix bug #7954 (now really)
    
    Thanks to maciejr we know now what the remaining problem was with bug 7954:
    My unicode symbol fallback works fine, the problem was that a font named
    "Symbol" is available on OS X, but it does not use the font-specific 
encoding
    we expect: Almost all glyphs are at their unicode code point.
    Therefore the bug is fixed by re-enabling the unicode workaround and 
blocking
    the Symbol font on OS X.

diff --git a/lib/symbols b/lib/symbols
index 9f33433..2b5aea2 100644
--- a/lib/symbols
+++ b/lib/symbols
@@ -1173,6 +1173,8 @@ lyxsurd               cmsy        112 0 mathord  &radic;
 \def\surd{^\lyxsurd}
 \def\textdegree{\kern-1mu^{\circ}\kern-4mu}
 else
+# FIXME: These don't work on OS X, since the Symbol font uses a different
+#        encoding and is therefore disabled in FontLoader::available().
 cong               lyxsymbol             64  0 mathrel  &cong;
 surd               lyxsymbol             214 0 mathord  &radic;
 textdegree         lyxsymbol             176 0 mathord  &deg;
diff --git a/src/frontends/qt4/GuiFontLoader.cpp 
b/src/frontends/qt4/GuiFontLoader.cpp
index 8081cd6..1a887ff 100644
--- a/src/frontends/qt4/GuiFontLoader.cpp
+++ b/src/frontends/qt4/GuiFontLoader.cpp
@@ -349,6 +349,16 @@ bool FontLoader::available(FontInfo const & f)
        static vector<int> cache(NUM_FAMILIES, false);
 
        FontFamily family = f.family();
+#ifdef Q_WS_MACX
+       // Apple ships a font name "Symbol", which has more or less the same
+       // glyphs as the original PostScript Symbol font, but it uses a 
different
+       // encoding (see 
https://en.wikipedia.org/wiki/Symbol_(typeface)#cite_note-2).
+       // Since we expect the font specific encoding of the original
+       // PostScript Symbol font, we can't use the one provided on OS X.
+       // See also the discussion in bug 7954.
+       if (f.family() == SYMBOL_FAMILY)
+               return false;
+#endif
        if (cache_set[family])
                return cache[family];
        cache_set[family] = true;
diff --git a/src/mathed/MathFactory.cpp b/src/mathed/MathFactory.cpp
index d198998..961e70e 100644
--- a/src/mathed/MathFactory.cpp
+++ b/src/mathed/MathFactory.cpp
@@ -118,10 +118,8 @@ bool canBeDisplayed(char_type c)
 }
 
 
-bool isUnicodeSymbolAvailable(docstring const & /*name*/, char_type & /*c*/)
+bool isUnicodeSymbolAvailable(docstring const & name, char_type & c)
 {
-       // this is too fragile, e.g. prodes W instead of capital omega on OS X
-#if 0
        docstring cmd(from_ascii("\\") + name);
        bool is_combining;
        bool termination;
@@ -135,9 +133,6 @@ bool isUnicodeSymbolAvailable(docstring const & /*name*/, 
char_type & /*c*/)
                                                is_combining, termination);
        }
        return c != 0 && !is_combining;
-#else
-       return false;
-#endif
 }
 
 
diff --git a/src/mathed/MathSupport.cpp b/src/mathed/MathSupport.cpp
index 21d41dd..1915e2b 100644
--- a/src/mathed/MathSupport.cpp
+++ b/src/mathed/MathSupport.cpp
@@ -634,6 +634,9 @@ fontinfo fontinfos[] = {
        // LyX internal usage
        {"lyxtex",        inh_family, inh_series,
                          UP_SHAPE, Color_latex},
+       // FIXME: The following two don't work on OS X, since the Symbol font
+       //        uses a different encoding, and is therefore disabled in
+       //        FontLoader::available().
        {"lyxsymbol",     SYMBOL_FAMILY, inh_series,
                          inh_shape, Color_math},
        {"lyxboldsymbol", SYMBOL_FAMILY, BOLD_SERIES,
diff --git a/status.21x b/status.21x
index e079e31..ff2d217 100644
--- a/status.21x
+++ b/status.21x
@@ -111,6 +111,8 @@ What's new
 
 - Fix computer algebra system computations in formulas with '=' signs.
 
+- Fix rendering of \varOmega on OS X (bug 7954).
+
 
 * INTERNALS
 

Reply via email to