From 9a7cef54a67135eb241506be444ccfb0aee2cf5d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Fri, 15 Aug 2003 12:53:57 +0000 Subject: [PATCH] partial fix for anchor_row problems git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7554 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/xforms/xscreen.C | 5 ++--- src/text2.C | 12 ++++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/frontends/xforms/xscreen.C b/src/frontends/xforms/xscreen.C index c917944ad3..3ad462e4e8 100644 --- a/src/frontends/xforms/xscreen.C +++ b/src/frontends/xforms/xscreen.C @@ -173,12 +173,11 @@ void XScreen::expose(int x, int y, int w, int h) void XScreen::draw(LyXText * text, BufferView * bv, unsigned int y) { - int const old_first = text->top_y(); text->top_y(y); // make a dumb new-draw - drawFromTo(text, bv, 0, owner_.workHeight(), 0, 0); - expose(0, 0, owner_.workWidth(), owner_.workHeight()); + //drawFromTo(text, bv, 0, owner_.workHeight(), 0, 0); + //expose(0, 0, owner_.workWidth(), owner_.workHeight()); XSync(fl_get_display(), 0); } diff --git a/src/text2.C b/src/text2.C index bf67799b0e..b86338ad45 100644 --- a/src/text2.C +++ b/src/text2.C @@ -559,9 +559,10 @@ void LyXText::redoParagraph(ParagraphList::iterator pit) RowList::iterator end = pit->rows.end(); // remove rows of paragraph - for ( ; rit != end; ++rit) { + int anchor_cnt = -1; + for (int i = 0; rit != end; ++rit, ++i) { if (rit == anchor_row_) - anchor_row_ = endRow(); + anchor_cnt = i; height -= rit->height(); } pit->rows.clear(); @@ -588,6 +589,13 @@ void LyXText::redoParagraph(ParagraphList::iterator pit) setHeightOfRow(pit, tmprow); } + if (anchor_cnt == -1) { + if (anchor_cnt >= pit->rows.size()) + anchor_cnt = pit->rows.size(); + anchor_row_ = pit->rows.begin(); + advance(anchor_row_, anchor_cnt); + } + //lyxerr << "redoParagraph: " << pit->rows.size() << " rows\n"; } -- 2.39.2