mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 06:49:56 +00:00
need_break_row was wrong in my earlier patches
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3413 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d8037e4bfd
commit
37cfca3ed6
@ -1,3 +1,13 @@
|
||||
2002-01-18 Allan Rae <rae@lyx.org>
|
||||
|
||||
* text2.C (removeRow): add comment. Should other refresh_?? vars be
|
||||
updated also?
|
||||
|
||||
* text.C (drawInset): Turned out I didn't know enough about how
|
||||
rebreaking worked. This fixes most of the redraw problems. I see
|
||||
an occasional cursor trail when a line is broken now and the cursor
|
||||
placement can seem out by a few pixels also after a rebreak.
|
||||
|
||||
2002-01-17 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
|
||||
|
||||
* buffer.C (parseSingleLyXformat2Token): update because minipage
|
||||
|
16
src/text.C
16
src/text.C
@ -481,19 +481,17 @@ void LyXText::drawInset(DrawRowParams & p, pos_type const pos)
|
||||
inset->draw(p.bv, font, p.yo + p.row->baseline(), p.x, p.cleared);
|
||||
|
||||
if (!need_break_row && !inset_owner
|
||||
&& p.bv->text->status() == CHANGED_IN_DRAW) {
|
||||
&& p.bv->text->status() == CHANGED_IN_DRAW) {
|
||||
Row * prev = p.row->previous();
|
||||
if (prev && prev->par() == p.row->par()) {
|
||||
breakAgainOneRow(p.bv, prev);
|
||||
// breakAgainOneRow() may have removed p.row
|
||||
// What about the x and y coordinates? par & pos ok.
|
||||
if (prev->next() != p.row) {
|
||||
p.row = prev;
|
||||
// breakAgainOneRow() has removed p.row
|
||||
p.row = 0; // see what this breaks
|
||||
need_break_row = prev;
|
||||
} else {
|
||||
need_break_row = p.row;
|
||||
}
|
||||
// If there's only one row (after p.row was deleted)
|
||||
// prev->next() == 0 and no breaking is required.
|
||||
// Otherwise, check the new next row.
|
||||
need_break_row = prev->next();
|
||||
} else {
|
||||
need_break_row = p.row;
|
||||
}
|
||||
@ -1671,7 +1669,7 @@ void LyXText::breakAgainOneRow(BufferView * bview, Row * row)
|
||||
row = row->next();
|
||||
row->height(0);
|
||||
} else {
|
||||
row= row->next();
|
||||
row = row->next();
|
||||
++z;
|
||||
if (row->pos() != z)
|
||||
row->pos(z);
|
||||
|
@ -404,6 +404,7 @@ void LyXText::removeRow(Row * row) const
|
||||
}
|
||||
if (refresh_row == row) {
|
||||
refresh_row = row_prev ? row_prev : row->next();
|
||||
// what about refresh_y, refresh_height
|
||||
}
|
||||
|
||||
height -= row->height(); // the text becomes smaller
|
||||
|
Loading…
Reference in New Issue
Block a user