X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1ea67ee808e72ddeac7e6a01c42a015102664086..f097c3b368c10b7c88f63038459c4c5a38889a1f:/lib/gdi/font.cpp diff --git a/lib/gdi/font.cpp b/lib/gdi/font.cpp index 1471aa5e..4c08b4fc 100644 --- a/lib/gdi/font.cpp +++ b/lib/gdi/font.cpp @@ -18,7 +18,7 @@ #include #include -//#define HAVE_FRIBIDI +#define HAVE_FRIBIDI // until we have it in the cdk #ifdef HAVE_FRIBIDI @@ -205,12 +205,10 @@ float fontRenderClass::getLineHeight(const gFont& font) return 0; } int linegap=current_face->size->metrics.height-(current_face->size->metrics.ascender+current_face->size->metrics.descender); - float height=(current_face->size->metrics.ascender+current_face->size->metrics.descender+linegap/2.0)/64; - delete fnt; + float height=(current_face->size->metrics.ascender+current_face->size->metrics.descender+linegap)/64.0; return height; } - fontRenderClass::~fontRenderClass() { singleLock s(ftlock); @@ -363,7 +361,7 @@ void eTextPara::calc_bbox() boundBox = i->bbox; ++i; - for (i ; i != glyphs.end(); ++i) + for (; i != glyphs.end(); ++i) { if ( i->flags & GS_ISSPACE ) continue; @@ -386,7 +384,7 @@ void eTextPara::newLine(int flags) cursor.setX(left); previous=0; int linegap=current_face->size->metrics.height-(current_face->size->metrics.ascender+current_face->size->metrics.descender); - cursor+=ePoint(0, (current_face->size->metrics.ascender+current_face->size->metrics.descender+linegap*1/2)>>6); + cursor+=ePoint(0, (current_face->size->metrics.ascender+current_face->size->metrics.descender+linegap)>>6); if (maximum.height() eTextPara::forced_replaces; void eTextPara::setFont(Font *fnt, Font *replacement) { @@ -589,9 +588,10 @@ nprint: isprintable=0; } if (isprintable) { - FT_UInt index; - - index=(rflags&RS_DIRECT)? *i : FT_Get_Char_Index(current_face, *i); + FT_UInt index = 0; + + if (forced_replaces.find(*i) == forced_replaces.end()) + index=(rflags&RS_DIRECT)? *i : FT_Get_Char_Index(current_face, *i); if (!index) {