>>>>> "Lars" == Lars Gullik Bjønnes <[EMAIL PROTECTED]> writes:
Lars> I cannot remember the case at all... Basically, I applied the patch below to 1.3.x, but it is so ugly that I ask for your approval before checking it in 1.4.0cvs. JMarc
Index: src/frontends/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/ChangeLog,v retrieving revision 1.148 diff -u -p -r1.148 ChangeLog --- src/frontends/ChangeLog 14 Jan 2003 21:51:33 -0000 1.148 +++ src/frontends/ChangeLog 22 Oct 2003 15:36:59 -0000 @@ -1,3 +1,7 @@ +2003-10-22 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> + + * lyx_gui.h: add need_ugly_metrics_hack + 2003-01-11 Juergen Spitzmueller <[EMAIL PROTECTED]> * FileDialog.h: implement opendir (browse directory) [bug 824] Index: src/frontends/lyx_gui.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/lyx_gui.h,v retrieving revision 1.15 diff -u -p -r1.15 lyx_gui.h --- src/frontends/lyx_gui.h 18 Dec 2002 14:24:31 -0000 1.15 +++ src/frontends/lyx_gui.h 22 Oct 2003 15:36:59 -0000 @@ -84,6 +84,13 @@ void set_read_callback(int fd, LyXComm * */ void remove_read_callback(int fd); +/** + * tells whether a special metrics hack is needed by mathed. Currently + * only Qt/Mac requires it. The name has been chosen to be horrible + * enough to get someone to fix the fonts :) + */ +bool needs_ugly_metrics_hack(); + } // namespace lyx_gui #endif // LYX_GUI_H Index: src/frontends/qt2/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/ChangeLog,v retrieving revision 1.389.2.37 diff -u -p -r1.389.2.37 ChangeLog --- src/frontends/qt2/ChangeLog 3 Oct 2003 13:34:39 -0000 1.389.2.37 +++ src/frontends/qt2/ChangeLog 22 Oct 2003 15:37:01 -0000 @@ -1,3 +1,8 @@ +2003-10-22 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> + + * lyx_gui.C (needs_ugly_metrics_hack): new function. Returns true + only for Qt/Mac. + 2003-10-02 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> * qfont_loader.C: add an #include Index: src/frontends/qt2/lyx_gui.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/lyx_gui.C,v retrieving revision 1.30.2.1 diff -u -p -r1.30.2.1 lyx_gui.C --- src/frontends/qt2/lyx_gui.C 7 Feb 2003 16:49:20 -0000 1.30.2.1 +++ src/frontends/qt2/lyx_gui.C 22 Oct 2003 15:37:01 -0000 @@ -243,3 +243,17 @@ void lyx_gui::remove_read_callback(int f io_callbacks.erase(it); } } + + +bool lyx_gui::needs_ugly_metrics_hack() +{ +// There is some bug (in our fonts) which make the metrics of things +// like \sum wrong under Qt/Mac. The only solution we have for now is +// to add this ugly function, so that MathSymbolInset::metrics can do +// the right thing +#ifdef Q_WS_MAC + return true; +#else + return false; +#endif +} Index: src/frontends/xforms/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/ChangeLog,v retrieving revision 1.661.2.10 diff -u -p -r1.661.2.10 ChangeLog --- src/frontends/xforms/ChangeLog 21 Jul 2003 13:06:37 -0000 1.661.2.10 +++ src/frontends/xforms/ChangeLog 22 Oct 2003 15:37:01 -0000 @@ -1,3 +1,7 @@ +2003-10-22 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> + + * lyx_gui.C (needs_ugly_metrics_hack): new method, returns false + 2003-07-11 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> * xfont_loader.C (addFontPath): condition message to Debug::FONT Index: src/frontends/xforms/lyx_gui.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/lyx_gui.C,v retrieving revision 1.31 diff -u -p -r1.31 lyx_gui.C --- src/frontends/xforms/lyx_gui.C 18 Dec 2002 14:24:32 -0000 1.31 +++ src/frontends/xforms/lyx_gui.C 22 Oct 2003 15:37:01 -0000 @@ -388,3 +388,9 @@ void lyx_gui::remove_read_callback(int f { fl_remove_io_callback(fd, FL_READ, C_read_callback); } + + +bool lyx_gui::needs_ugly_metrics_hack() +{ + return false; +} Index: src/mathed/math_symbolinset.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/mathed/math_symbolinset.C,v retrieving revision 1.52.2.1 diff -u -p -r1.52.2.1 math_symbolinset.C --- src/mathed/math_symbolinset.C 22 Sep 2003 14:40:40 -0000 1.52.2.1 +++ src/mathed/math_symbolinset.C 22 Oct 2003 15:37:01 -0000 @@ -12,6 +12,9 @@ #include "LaTeXFeatures.h" #include "debug.h" +// needed for the metrics hack +#include "frontends/lyx_gui.h" + MathSymbolInset::MathSymbolInset(const latexkeys * l) : sym_(l), h_(0) {} @@ -51,24 +54,25 @@ void MathSymbolInset::metrics(MathMetric MathFontSetChanger dummy(mi.base, sym_->inset.c_str()); mathed_string_dim(mi.base.font, sym_->draw, dim_); // correct height for broken cmex and wasy font -#if defined(__APPLE__) && defined(__GNUC__) - if (sym_->inset == "cmex") { - h_ = 4 * dim_.d / 5; - dim_.a += 0*h_; - dim_.d -= h_; - h_ = dim_.a; - } else if (sym_->inset == "wasy") { - h_ = 4 * dim_.d / 5; - dim_.a += h_; - dim_.d -= h_; + if (lyx_gui::needs_ugly_metrics_hack()) { + if (sym_->inset == "cmex") { + h_ = 4 * dim_.d / 5; + dim_.a += 0*h_; + dim_.d -= h_; + h_ = dim_.a; + } else if (sym_->inset == "wasy") { + h_ = 4 * dim_.d / 5; + dim_.a += h_; + dim_.d -= h_; + } + } else { + if (sym_->inset == "cmex" || sym_->inset == "wasy") { + h_ = 4 * dim_.d / 5; + dim_.a += h_; + dim_.d -= h_; + } } -#else - if (sym_->inset == "cmex" || sym_->inset == "wasy") { - h_ = 4 * dim_.d / 5; - dim_.a += h_; - dim_.d -= h_; - } -#endif + // seperate things a bit if (isRelOp()) dim_.w += static_cast<int>(0.5*em+0.5);