Re: Assertion tirggered

2004-12-04 Thread Lars Gullik Bjønnes
Alfredo Braunstein <[EMAIL PROTECTED]> writes:

| Lars Gullik Bjønnes wrote:
>
>> | This should fix it. Could you confirm?
>> 
>> I can try to.
>> 
>> It is not something that happened every time.
>> But I'll test a bit with this patch.
>

| I'll commit this in a while if there are no objections.

Very much ok.

| Index: insettabular.C
| ===
| RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insettabular.C,v
| retrieving revision 1.447
| diff -u -p -u -r1.447 insettabular.C
| --- insettabular.C3 Dec 2004 13:57:50 -   1.447
| +++ insettabular.C4 Dec 2004 19:14:39 -
| @@ -263,14 +263,14 @@ void InsetTabular::metrics(MetricsInfo &
|  
|  void InsetTabular::draw(PainterInfo & pi, int x, int y) const
|  {
| +

  except this :-)

-- 
Lgb



Re: Assertion tirggered

2004-12-04 Thread Alfredo Braunstein
Lars Gullik BjÃnnes wrote:

> | This should fix it. Could you confirm?
> 
> I can try to.
> 
> It is not something that happened every time.
> But I'll test a bit with this patch.

I'll commit this in a while if there are no objections.

This is the above fix (but reintroducing the optimization by using
nullpainter) + two small fixes to tabular scrolling: one is a bug in a call
to scroll, because int and float have different meanings thereÂ, the other
is a small visual correction.

 not very nice choice IMO ;-)

Alfredo
Index: insettabular.C
===
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insettabular.C,v
retrieving revision 1.447
diff -u -p -u -r1.447 insettabular.C
--- insettabular.C	3 Dec 2004 13:57:50 -	1.447
+++ insettabular.C	4 Dec 2004 19:14:39 -
@@ -263,14 +263,14 @@ void InsetTabular::metrics(MetricsInfo &
 
 void InsetTabular::draw(PainterInfo & pi, int x, int y) const
 {
+
 	//lyxerr << "InsetTabular::draw: " << x << " " << y << endl;
 	BufferView * bv = pi.base.bv;
+	resetPos(bv->cursor());
 
 	static NullPainter nop;
 	static PainterInfo nullpi(bv, nop);
 
-	resetPos(bv->cursor());
-
 	setPosCache(pi, x, y);
 
 	x += scroll();
@@ -283,11 +283,6 @@ void InsetTabular::draw(PainterInfo & pi
 		int const a = tabular.getAscentOfRow(i);
 		int const d = tabular.getDescentOfRow(i);
 		idx = tabular.getCellNumber(i, 0);
-		if (y + d <= 0 && y - a < pi.pain.paperHeight()) {
-			y += d	+ tabular.getAscentOfRow(i + 1)
-+ tabular.getAdditionalHeight(i + 1);
-			continue;
-		}
 		for (col_type j = 0; j < tabular.columns(); ++j) {
 			if (tabular.isPartOfMultiColumn(i, j))
 continue;
@@ -297,6 +292,7 @@ void InsetTabular::draw(PainterInfo & pi
 			int const cx = nx + tabular.getBeginningOfTextInCell(idx);
 			if (nx + tabular.getWidthOfColumn(idx) < 0
 			|| nx > bv->workWidth()
+			|| y + d < 0
 			|| y - a > bv->workHeight()) {
 cell(idx)->draw(nullpi, cx, y);
 drawCellLines(nop, nx, y, i, idx);
@@ -1107,7 +1103,7 @@ void InsetTabular::resetPos(LCursor & cu
 //	}
 
 	if (&cur.inset() != this) {
-		scroll(bv, 0);
+		scroll(bv, 0.0F);
 	} else {
 		int const X1 = 0;
 		int const X2 = bv.workWidth();
@@ -1116,9 +1112,9 @@ void InsetTabular::resetPos(LCursor & cu
 		int const x1 = getCellXPos(cur.idx()) + offset + scroll();
 		int const x2 = x1 + col_width;
 
-		if (x1 < X1 + 20)
+		if (x1 < X1)
 			scroll(bv, X1 + 20 - x1);
-		else if (x2 > X2 - 20)
+		else if (x2 > X2)
 			scroll(bv, X2 - 20 - x2);
 	}
 


Re: Assertion tirggered

2004-12-03 Thread Lars Gullik Bjønnes
Alfredo Braunstein <[EMAIL PROTECTED]> writes:

| Lars Gullik Bjønnes wrote:
>
>> END -> to end of document
>> PgUp -> then it crashed. (several times PgUP)
>> 
>> I'll try to have a look later.
>> 
>> But if anyone knows what happens please tell.
>
| This should fix it. Could you confirm?

I can try to.

It is not something that happened every time.
But I'll test a bit with this patch.


-- 
Lgb



Re: Assertion tirggered

2004-12-03 Thread Alfredo Braunstein
Lars Gullik BjÃnnes wrote:

> END -> to end of document
> PgUp -> then it crashed. (several times PgUP)
> 
> I'll try to have a look later.
> 
> But if anyone knows what happens please tell.

This should fix it. Could you confirm?

(we need the outscreen parts to be drawn with nullpainter to have their
coordinates)

Regards, Alfredo
Index: insettabular.C
===
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insettabular.C,v
retrieving revision 1.447
diff -u -p -r1.447 insettabular.C
--- insettabular.C	3 Dec 2004 13:57:50 -	1.447
+++ insettabular.C	3 Dec 2004 21:03:54 -
@@ -283,11 +283,6 @@ void InsetTabular::draw(PainterInfo & pi
 		int const a = tabular.getAscentOfRow(i);
 		int const d = tabular.getDescentOfRow(i);
 		idx = tabular.getCellNumber(i, 0);
-		if (y + d <= 0 && y - a < pi.pain.paperHeight()) {
-			y += d	+ tabular.getAscentOfRow(i + 1)
-+ tabular.getAdditionalHeight(i + 1);
-			continue;
-		}
 		for (col_type j = 0; j < tabular.columns(); ++j) {
 			if (tabular.isPartOfMultiColumn(i, j))
 continue;