Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-24 Thread Jean-Marc Lasgouttes
 Jean-Marc == Jean-Marc Lasgouttes [EMAIL PROTECTED] writes:

 Jean-Marc == Jean-Marc Lasgouttes [EMAIL PROTECTED] writes:
Jean-Marc OK, since you insist, I'll attach it :)

Jean-Marc Wrong one. I need sleep.

Applied.

JMarc


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-24 Thread Jean-Marc Lasgouttes
> "Jean-Marc" == Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:

> "Jean-Marc" == Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:
Jean-Marc> OK, since you insist, I'll attach it :)

Jean-Marc> Wrong one. I need sleep.

Applied.

JMarc


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Martin Vermeer
On Thu, Mar 23, 2006 at 03:08:16PM +0100, Jean-Marc Lasgouttes wrote:
 
 I would like to apply the following to branch and trunk. Any
 objection?
 
 To recap, what it does is restrict bruteFind to search only in the
 paragraphs that are in the coordcache. The old code searched through
 the whole document but acted only on the paragraphs in the coordcache
 (the test for CUR_INSIDE).
 
 Any objection?

If this invisible patch is the latest you posted on bugzilla, no.

- Martin
 


pgpITbzl6M8QK.pgp
Description: PGP signature


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Jean-Marc Lasgouttes
 Martin == Martin Vermeer [EMAIL PROTECTED] writes:

Martin On Thu, Mar 23, 2006 at 03:08:16PM +0100, Jean-Marc Lasgouttes
Martin wrote:
  I would like to apply the following to branch and trunk. Any
 objection?
 
 To recap, what it does is restrict bruteFind to search only in the
 paragraphs that are in the coordcache. The old code searched
 through the whole document but acted only on the paragraphs in the
 coordcache (the test for CUR_INSIDE).
 
 Any objection?

Martin If this invisible patch is the latest you posted on bugzilla,
Martin no.

OK, since you insist, I'll attach it :)

JMarc

Index: insetgraphics.C
===
--- insetgraphics.C	(revision 13276)
+++ insetgraphics.C	(working copy)
@@ -748,9 +748,15 @@
 	string after;
 	// Do we want subcaptions?
 	if (params().subcaption) {
+		if (runparams.moving_arg)
+			before += \\protect;
 		before += \\subfigure[ + params().subcaptionText + ]{;
 		after = '}';
 	}
+
+	if (runparams.moving_arg)
+		before += \\protect;
+	
 	// We never use the starred form, we use the clip option instead.
 	before += \\includegraphics;
 


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Jean-Marc Lasgouttes
 Jean-Marc == Jean-Marc Lasgouttes [EMAIL PROTECTED] writes:

Jean-Marc OK, since you insist, I'll attach it :)

Wrong one. I need sleep.

JMarc

Index: src/cursor.C
===
--- src/cursor.C	(revision 13257)
+++ src/cursor.C	(working copy)
@@ -127,16 +127,26 @@
 		BOOST_ASSERT(!cursor.empty());
 		InsetBase  inset = cursor[0].inset();
 
-		DocIterator it = doc_iterator_begin(inset);
-		DocIterator const et = doc_iterator_end(inset);
+		CoordCache::InnerParPosCache const  cache = theCoords.getParPos().find(cursor.bottom().text())-second;
+		// Get an iterator on the first paragraph in the cache
+		DocIterator it(inset);
+		it.push_back(CursorSlice(inset));
+		it.pit() = cache.begin()-first;
+		// Get an iterator after the last paragraph in the cache
+		DocIterator et(inset);
+		et.push_back(CursorSlice(inset));
+		et.pit() = boost::prior(cache.end())-first;
+		if (et.pit() = et.lastpit())
+			et = doc_iterator_end(inset);
+		else 
+			++et.pit();
 
 		double best_dist = std::numeric_limitsdouble::max();;
 		DocIterator best_cursor = et;
 
 		for ( ; it != et; it.forwardPos(true)) {
 			// avoid invalid nesting when selecting
-			if (bv_funcs::status(cursor.bv(), it) == bv_funcs::CUR_INSIDE
-			 (!cursor.selection() || positionable(it, cursor.anchor_))) {
+			if (!cursor.selection() || positionable(it, cursor.anchor_)) {
 Point p = bv_funcs::getPos(it, false);
 int xo = p.x_;
 int yo = p.y_;
@@ -147,7 +157,7 @@
 	// '=' in order to take the last possible position
 	// this is important for clicking behind \sum in e.g. '\sum_i a'
 	if (d = best_dist) {
-		lyxerr  *  endl;
+		//	lyxerr  *  endl;
 		best_dist   = d;
 		best_cursor = it;
 	}
Index: src/ChangeLog
===
--- src/ChangeLog	(revision 13257)
+++ src/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2006-02-20  Jean-Marc Lasgouttes  [EMAIL PROTECTED]
+
+	* cursor.C (bruteFind): only iterate over the paragraphs that are
+	in the CoordCache (bug 2217)
+
 2006-02-06  Georg Baum  [EMAIL PROTECTED]
 
 	* text2.C (deleteEmptyParagraphMechanism): 64bit compile fix


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Martin Vermeer
On Thu, Mar 23, 2006 at 04:52:10PM +0100, Jean-Marc Lasgouttes wrote:
  Jean-Marc == Jean-Marc Lasgouttes [EMAIL PROTECTED] writes:
 
 Jean-Marc OK, since you insist, I'll attach it :)
 
 Wrong one. I need sleep.
 
 JMarc

This is the one that I tested, right?

- Martin
 


pgplNNJEXXofL.pgp
Description: PGP signature


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Jean-Marc Lasgouttes

 This is the one that I tested, right?

Yes.

JMarc 





Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Martin Vermeer
On Thu, Mar 23, 2006 at 03:08:16PM +0100, Jean-Marc Lasgouttes wrote:
> 
> I would like to apply the following to branch and trunk. Any
> objection?
> 
> To recap, what it does is restrict bruteFind to search only in the
> paragraphs that are in the coordcache. The old code searched through
> the whole document but acted only on the paragraphs in the coordcache
> (the test for CUR_INSIDE).
> 
> Any objection?

If this invisible patch is the latest you posted on bugzilla, no.

- Martin
 


pgpITbzl6M8QK.pgp
Description: PGP signature


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Jean-Marc Lasgouttes
> "Martin" == Martin Vermeer <[EMAIL PROTECTED]> writes:

Martin> On Thu, Mar 23, 2006 at 03:08:16PM +0100, Jean-Marc Lasgouttes
Martin> wrote:
>>  I would like to apply the following to branch and trunk. Any
>> objection?
>> 
>> To recap, what it does is restrict bruteFind to search only in the
>> paragraphs that are in the coordcache. The old code searched
>> through the whole document but acted only on the paragraphs in the
>> coordcache (the test for CUR_INSIDE).
>> 
>> Any objection?

Martin> If this invisible patch is the latest you posted on bugzilla,
Martin> no.

OK, since you insist, I'll attach it :)

JMarc

Index: insetgraphics.C
===
--- insetgraphics.C	(revision 13276)
+++ insetgraphics.C	(working copy)
@@ -748,9 +748,15 @@
 	string after;
 	// Do we want subcaptions?
 	if (params().subcaption) {
+		if (runparams.moving_arg)
+			before += "\\protect";
 		before += "\\subfigure[" + params().subcaptionText + "]{";
 		after = '}';
 	}
+
+	if (runparams.moving_arg)
+		before += "\\protect";
+	
 	// We never use the starred form, we use the "clip" option instead.
 	before += "\\includegraphics";
 


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Jean-Marc Lasgouttes
> "Jean-Marc" == Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:

Jean-Marc> OK, since you insist, I'll attach it :)

Wrong one. I need sleep.

JMarc

Index: src/cursor.C
===
--- src/cursor.C	(revision 13257)
+++ src/cursor.C	(working copy)
@@ -127,16 +127,26 @@
 		BOOST_ASSERT(!cursor.empty());
 		InsetBase & inset = cursor[0].inset();
 
-		DocIterator it = doc_iterator_begin(inset);
-		DocIterator const et = doc_iterator_end(inset);
+		CoordCache::InnerParPosCache const & cache = theCoords.getParPos().find(cursor.bottom().text())->second;
+		// Get an iterator on the first paragraph in the cache
+		DocIterator it(inset);
+		it.push_back(CursorSlice(inset));
+		it.pit() = cache.begin()->first;
+		// Get an iterator after the last paragraph in the cache
+		DocIterator et(inset);
+		et.push_back(CursorSlice(inset));
+		et.pit() = boost::prior(cache.end())->first;
+		if (et.pit() >= et.lastpit())
+			et = doc_iterator_end(inset);
+		else 
+			++et.pit();
 
 		double best_dist = std::numeric_limits::max();;
 		DocIterator best_cursor = et;
 
 		for ( ; it != et; it.forwardPos(true)) {
 			// avoid invalid nesting when selecting
-			if (bv_funcs::status((), it) == bv_funcs::CUR_INSIDE
-			&& (!cursor.selection() || positionable(it, cursor.anchor_))) {
+			if (!cursor.selection() || positionable(it, cursor.anchor_)) {
 Point p = bv_funcs::getPos(it, false);
 int xo = p.x_;
 int yo = p.y_;
@@ -147,7 +157,7 @@
 	// '<=' in order to take the last possible position
 	// this is important for clicking behind \sum in e.g. '\sum_i a'
 	if (d <= best_dist) {
-		lyxerr << "*" << endl;
+		//	lyxerr << "*" << endl;
 		best_dist   = d;
 		best_cursor = it;
 	}
Index: src/ChangeLog
===
--- src/ChangeLog	(revision 13257)
+++ src/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2006-02-20  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
+
+	* cursor.C (bruteFind): only iterate over the paragraphs that are
+	in the CoordCache (bug 2217)
+
 2006-02-06  Georg Baum  <[EMAIL PROTECTED]>
 
 	* text2.C (deleteEmptyParagraphMechanism): 64bit compile fix


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Martin Vermeer
On Thu, Mar 23, 2006 at 04:52:10PM +0100, Jean-Marc Lasgouttes wrote:
> > "Jean-Marc" == Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:
> 
> Jean-Marc> OK, since you insist, I'll attach it :)
> 
> Wrong one. I need sleep.
> 
> JMarc

This is the one that I tested, right?

- Martin
 


pgplNNJEXXofL.pgp
Description: PGP signature


Re: [PATCH] bug 2217: getting out of mathed is slow

2006-03-23 Thread Jean-Marc Lasgouttes

> This is the one that I tested, right?

Yes.

JMarc