mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-12 22:14:35 +00:00
Give fullRow insets a full row width, small bugfix, force rebreak of row when
inserting an inset (fix #292 hopefully). git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3978 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
4036639aa5
commit
1dc3f4deb3
@ -1,3 +1,10 @@
|
|||||||
|
2002-04-12 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
|
* text.C (leftMargin): return LYX_PAPER_MARGIN if this row contains
|
||||||
|
an inset which uses the whole row!
|
||||||
|
(rightMargin): ditto.
|
||||||
|
(insertChar): force a rebreak if we inserted an inset!
|
||||||
|
|
||||||
2002-03-28 Herbert Voss <voss@lyx.org>
|
2002-03-28 Herbert Voss <voss@lyx.org>
|
||||||
|
|
||||||
* lyxlength.[Ch]: add inBP() to get the right PS-point
|
* lyxlength.[Ch]: add inBP() to get the right PS-point
|
||||||
@ -6,6 +13,7 @@
|
|||||||
2002-04-11 Juergen Vigna <jug@sad.it>
|
2002-04-11 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
* text2.C (setCursorFromCoordinates): set iy to the right value.
|
* text2.C (setCursorFromCoordinates): set iy to the right value.
|
||||||
|
(setCursor): add check if row->previous exists!
|
||||||
|
|
||||||
* buffer.C (parseSingleLyXformat2Token): reset font after read of
|
* buffer.C (parseSingleLyXformat2Token): reset font after read of
|
||||||
an old float_type as this was the case in the old code!
|
an old float_type as this was the case in the old code!
|
||||||
|
29
src/text.C
29
src/text.C
@ -690,6 +690,12 @@ void LyXText::draw(DrawRowParams & p, pos_type & vpos)
|
|||||||
// exactly the label-width.
|
// exactly the label-width.
|
||||||
int LyXText::leftMargin(BufferView * bview, Row const * row) const
|
int LyXText::leftMargin(BufferView * bview, Row const * row) const
|
||||||
{
|
{
|
||||||
|
Inset * ins;
|
||||||
|
if ((row->par()->getChar(row->pos()) == Paragraph::META_INSET) &&
|
||||||
|
(ins=row->par()->getInset(row->pos())) &&
|
||||||
|
(ins->needFullRow() || ins->display()))
|
||||||
|
return LYX_PAPER_MARGIN;
|
||||||
|
|
||||||
LyXTextClass const & tclass =
|
LyXTextClass const & tclass =
|
||||||
textclasslist[bview->buffer()->params.textclass];
|
textclasslist[bview->buffer()->params.textclass];
|
||||||
LyXLayout const & layout = tclass[row->par()->layout()];
|
LyXLayout const & layout = tclass[row->par()->layout()];
|
||||||
@ -866,6 +872,12 @@ int LyXText::leftMargin(BufferView * bview, Row const * row) const
|
|||||||
|
|
||||||
int LyXText::rightMargin(Buffer const * buf, Row const * row) const
|
int LyXText::rightMargin(Buffer const * buf, Row const * row) const
|
||||||
{
|
{
|
||||||
|
Inset * ins;
|
||||||
|
if ((row->par()->getChar(row->pos()) == Paragraph::META_INSET) &&
|
||||||
|
(ins=row->par()->getInset(row->pos())) &&
|
||||||
|
(ins->needFullRow() || ins->display()))
|
||||||
|
return LYX_PAPER_MARGIN;
|
||||||
|
|
||||||
LyXTextClass const & tclass = textclasslist[buf->params.textclass];
|
LyXTextClass const & tclass = textclasslist[buf->params.textclass];
|
||||||
LyXLayout const & layout = tclass[row->par()->layout()];
|
LyXLayout const & layout = tclass[row->par()->layout()];
|
||||||
|
|
||||||
@ -1937,12 +1949,12 @@ void LyXText::insertChar(BufferView * bview, char c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Is there a break one row above
|
// Is there a break one row above
|
||||||
if ((cursor.par()->isLineSeparator(cursor.pos())
|
if (row->previous() && row->previous()->par() == row->par()
|
||||||
|| cursor.par()->isNewline(cursor.pos())
|
&& (cursor.par()->isLineSeparator(cursor.pos())
|
||||||
|| ((cursor.pos() < cursor.par()->size()) &&
|
|| cursor.par()->isNewline(cursor.pos())
|
||||||
cursor.par()->isInset(cursor.pos()+1))
|
|| ((cursor.pos() < cursor.par()->size()) &&
|
||||||
|| cursor.row()->fill() == -1)
|
cursor.par()->isInset(cursor.pos()+1))
|
||||||
&& row->previous() && row->previous()->par() == row->par())
|
|| cursor.row()->fill() == -1))
|
||||||
{
|
{
|
||||||
pos_type z = nextBreakPoint(bview,
|
pos_type z = nextBreakPoint(bview,
|
||||||
row->previous(),
|
row->previous(),
|
||||||
@ -1990,7 +2002,7 @@ void LyXText::insertChar(BufferView * bview, char c)
|
|||||||
* will set fill to -1. Otherwise
|
* will set fill to -1. Otherwise
|
||||||
* we would not get a rebreak! */
|
* we would not get a rebreak! */
|
||||||
row->fill(fill(bview, row, workWidth(bview)));
|
row->fill(fill(bview, row, workWidth(bview)));
|
||||||
if (row->fill() < 0) {
|
if (c == Paragraph::META_INSET || row->fill() < 0) {
|
||||||
refresh_y = y;
|
refresh_y = y;
|
||||||
refresh_row = row;
|
refresh_row = row;
|
||||||
refresh_x = cursor.x();
|
refresh_x = cursor.x();
|
||||||
@ -2088,7 +2100,8 @@ void LyXText::prepareToPrint(BufferView * bview,
|
|||||||
x = (workWidth(bview) > 0)
|
x = (workWidth(bview) > 0)
|
||||||
? rightMargin(bview->buffer(), row) : 0;
|
? rightMargin(bview->buffer(), row) : 0;
|
||||||
} else
|
} else
|
||||||
x = (workWidth(bview) > 0) ? leftMargin(bview, row) : 0;
|
x = (workWidth(bview) > 0)
|
||||||
|
? leftMargin(bview, row) : 0;
|
||||||
|
|
||||||
// is there a manual margin with a manual label
|
// is there a manual margin with a manual label
|
||||||
LyXTextClass const & tclass = textclasslist[bview->buffer()->params.textclass];
|
LyXTextClass const & tclass = textclasslist[bview->buffer()->params.textclass];
|
||||||
|
@ -2070,7 +2070,8 @@ void LyXText::setCursor(BufferView * bview, LyXCursor & cur, Paragraph * par,
|
|||||||
// the end of the previous row
|
// the end of the previous row
|
||||||
cur.iy(y + row->baseline());
|
cur.iy(y + row->baseline());
|
||||||
Inset * ins;
|
Inset * ins;
|
||||||
if (pos && par->getChar(pos) == Paragraph::META_INSET &&
|
if (row->previous() && pos &&
|
||||||
|
par->getChar(pos) == Paragraph::META_INSET &&
|
||||||
(ins=par->getInset(pos)) && (ins->needFullRow() || ins->display()))
|
(ins=par->getInset(pos)) && (ins->needFullRow() || ins->display()))
|
||||||
{
|
{
|
||||||
row = row->previous();
|
row = row->previous();
|
||||||
|
Loading…
Reference in New Issue
Block a user