"Michael Schmitt" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > However, we have a serious problem with the computation of font metrics. I > have generated a small test case that illustrates the problem: > > #include <qapplication.h> > > int main(int argc, char **argv) { > QApplication app(argc, argv); > QFont f("times",18,QFont::Bold); > QFontMetrics fm(f); > QRect r = fm.boundingRect('x'); > printf( "top: %d bottom: %d", r.top(), r.bottom()); > return 0; > } > > If you compile and run this program with GPL'd Qt/Win32, it outputs > > top: 16 bottom:36 > > However, if you run exactly the same program with Qt/X11 on cygwin (or on > Linux), you get the following output: > > top: -9 bottom: -1 >
On the Lyx side, this helps: --- ../../qfont_metrics.C 2003-02-14 12:22:48.000000000 +0100 +++ frontends/qt2/qfont_metrics.C 2005-01-05 14:32:20.677692800 +0100 @@ -77,7 +77,11 @@ if (!lyxrc.use_gui) return 1; QRect const & r = metrics(f).boundingRect(c); +#if defined(Q_WS_WIN) + return -r.bottom()-1; +#else return r.bottom()+1; +#endif } At least, with Non-Commercial 3.2.1. Here, the lyx_gui::needs_ugly_metrics_hack() is also needed. This ugly_metrics_hack is not needed for the free 3.3.3. Anyway, I don´t have a X11 LyX handy to compare with. I suspect the horizontal metrics are also inverted (accents etc.) Ruurd