]> git.lyx.org Git - lyx.git/blobdiff - src/FontLoader.C
some using changes small changes in lyxfont and some other things, read the Changelog
[lyx.git] / src / FontLoader.C
index b81c0a61167262d2731bde152e39aec207963d80..9d56de1068156d3710374c6f2fb936df6b53fed4 100644 (file)
@@ -26,6 +26,8 @@
 #include "LyXView.h"
 #include "minibuffer.h"
 
+using std::endl;
+
 extern BufferView * current_view;
 
 // Initialize font loader
@@ -197,12 +199,31 @@ void FontLoader::getFontinfo(LyXFont::FONT_FAMILY family,
        }
 }
 
+
+// A dummy fontstruct used when there is no gui. 
+static XFontStruct dummyXFontStruct;
+static bool dummyXFontStructisGood = false;
+
 /// Do load font
 XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family, 
                                LyXFont::FONT_SERIES series, 
                                LyXFont::FONT_SHAPE shape, 
                                LyXFont::FONT_SIZE size)
 {
+       if (!lyxrc.use_gui) {
+               if (!dummyXFontStructisGood) {
+                       // no character specific info
+                       dummyXFontStruct.per_char = 0; 
+                       // unit ascent on character displays
+                       dummyXFontStruct.ascent = 1; 
+                       // no descent on character displays
+                       dummyXFontStruct.descent = 0; 
+                       dummyXFontStructisGood = true;
+               }
+
+               return &dummyXFontStruct;
+       }
+
        getFontinfo(family, series, shape);
        int fsize = int( (lyxrc.font_sizes[size] * lyxrc.dpi * 
                          (lyxrc.zoom/100.0) ) / 72.27 + 0.5 );
@@ -215,11 +236,12 @@ XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
                font = "fixed";
        }
 
+       XFontStruct * fs = 0;
+
        current_view->owner()->getMiniBuffer()->Store();
        current_view->owner()->getMiniBuffer()->Set(_("Loading font into X-Server..."));
-
-       XFontStruct * fs = XLoadQueryFont(fl_display, font.c_str());
-
+       fs = XLoadQueryFont(fl_display, font.c_str());
+       
        if (fs == 0) {
                if (font == "fixed") {
                        lyxerr << "We're doomed. Can't get 'fixed' font." << endl;