]> git.lyx.org Git - features.git/commitdiff
hm... too eager I suppose
authorAndré Pönitz <poenitz@gmx.net>
Fri, 22 Aug 2003 12:00:58 +0000 (12:00 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Fri, 22 Aug 2003 12:00:58 +0000 (12:00 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7591 a592a061-630c-0410-9148-cb99ea01b6c8

src/text.C

index ba76a8a2510f9b19091df0e05879048f8adc86b6..139d56ebf3435d9334d3c531176b0d17e587adaf 100644 (file)
@@ -999,9 +999,21 @@ void LyXText::setHeightOfRow(ParagraphList::iterator pit, RowList::iterator rit)
                                if (par.isInset(pos)) {
                                        InsetOld const * tmpinset = par.getInset(pos);
                                        if (tmpinset) {
+#if 1 // this is needed for deep update on initialitation
+#warning inset->update FIXME
+                                               //tmpinset->update(bv());
+                                               LyXFont const tmpfont = getFont(pit, pos);
+                                               Dimension dim;
+                                               MetricsInfo mi(bv(), tmpfont, workWidth());
+                                               tmpinset->metrics(mi, dim);
+                                               maxwidth += dim.wid;
+                                               maxasc = max(maxasc, dim.asc);
+                                               maxdesc = max(maxdesc, dim.des);
+#else
                                                maxwidth += tmpinset->width();
                                                maxasc = max(maxasc, tmpinset->ascent());
                                                maxdesc = max(maxdesc, tmpinset->descent());
+#endif
                                        }
                                } else {
                                        // Fall-back to normal case
@@ -1221,15 +1233,12 @@ void LyXText::setHeightOfRow(ParagraphList::iterator pit, RowList::iterator rit)
        rit->top_of_text(rit->baseline() - font_metrics::maxAscent(font));
 
        double x = 0;
-       if (layout->margintype != MARGIN_RIGHT_ADDRESS_BOX) {
-#warning needed?
 #if 0
                // this IS needed
                rit->width(maxwidth);
                double dummy;
                prepareToPrint(pit, rit, x, dummy, dummy, dummy, false);
 #endif
-       }
        rit->width(int(maxwidth + x));
        if (inset_owner) {
                width = max(0, workWidth());
@@ -1973,7 +1982,9 @@ void LyXText::backspace()
                                }
 
                                cursorLeft(bv());
-                               redoParagraph(cursor.par());
+
+                               // the layout things can change the height of a row !
+                               setHeightOfRow(cursor.par(), cursorRow());
                                return;
                        }
                }