* src/cursor.C

(bruteFind): only iterate over the paragraphs that are
	in the CoordCache (bug 2217)

	* status.14x
	* RELEASE-NOTES: update accordingly



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@13477 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2006-03-24 13:20:41 +00:00
parent 6370b5ca98
commit 94570286e8
4 changed files with 26 additions and 11 deletions

View File

@ -1,16 +1,14 @@
Known issues with version 1.4.1 Known issues with version 1.4.1
-------------------------------- --------------------------------
This file describes some known problems in LyX 1.4.0 that did not This file describes some known problems in LyX 1.4.1 that did not
occur in 1.3.7. Note that fixes are available for many of these, but occur in 1.3.7. Note that fixes are available for many of these, but
they have not yet been applied because of incomplete testing. they have not yet been applied because of incomplete testing.
** Noticeable delays when editing a large document ** Noticeable delays when editing documents
- exiting a math formula with the keyboard. - creating/deleting paragraphs in large documents or documents with
http://bugzilla.lyx.org/show_bug.cgi?id=2217 images and previews.
- creating/deleting paragraphs.
http://bugzilla.lyx.org/show_bug.cgi?id=2287 http://bugzilla.lyx.org/show_bug.cgi?id=2287
** Change tracking ** Change tracking

View File

@ -1,3 +1,8 @@
2006-02-20 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* cursor.C (bruteFind): only iterate over the paragraphs that are
in the CoordCache (bug 2217)
2006-03-22 Jean-Marc Lasgouttes <lasgouttes@lyx.org> 2006-03-22 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* lyxtextclass.C (hasTocLevels): new method. * lyxtextclass.C (hasTocLevels): new method.

View File

@ -127,16 +127,26 @@ namespace {
BOOST_ASSERT(!cursor.empty()); BOOST_ASSERT(!cursor.empty());
InsetBase & inset = cursor[0].inset(); InsetBase & inset = cursor[0].inset();
DocIterator it = doc_iterator_begin(inset); CoordCache::InnerParPosCache const & cache = theCoords.getParPos().find(cursor.bottom().text())->second;
DocIterator const et = doc_iterator_end(inset); // 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<double>::max();; double best_dist = std::numeric_limits<double>::max();;
DocIterator best_cursor = et; DocIterator best_cursor = et;
for ( ; it != et; it.forwardPos(true)) { for ( ; it != et; it.forwardPos(true)) {
// avoid invalid nesting when selecting // avoid invalid nesting when selecting
if (bv_funcs::status(&cursor.bv(), it) == bv_funcs::CUR_INSIDE if (!cursor.selection() || positionable(it, cursor.anchor_)) {
&& (!cursor.selection() || positionable(it, cursor.anchor_))) {
Point p = bv_funcs::getPos(it, false); Point p = bv_funcs::getPos(it, false);
int xo = p.x_; int xo = p.x_;
int yo = p.y_; int yo = p.y_;
@ -147,7 +157,7 @@ namespace {
// '<=' in order to take the last possible position // '<=' in order to take the last possible position
// this is important for clicking behind \sum in e.g. '\sum_i a' // this is important for clicking behind \sum in e.g. '\sum_i a'
if (d <= best_dist) { if (d <= best_dist) {
lyxerr << "*" << endl; // lyxerr << "*" << endl;
best_dist = d; best_dist = d;
best_cursor = it; best_cursor = it;
} }

View File

@ -64,6 +64,8 @@ What's new
- Fix crash when deleting row/column in a math array. - Fix crash when deleting row/column in a math array.
- Fix delay when exiting from a math inset (bug 2217).
- Fix positioning of cursor when clicking to right of last nestinset - Fix positioning of cursor when clicking to right of last nestinset
in a cell. in a cell.