Fix the multiple window rows() availability bug

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16273 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2006-12-14 03:41:32 +00:00
parent fb5b1bc6c8
commit 74602628f6
2 changed files with 11 additions and 0 deletions

View File

@ -577,3 +577,8 @@ CREDITS:
* LyX tries to delete /tmp if it is called with invalid arguments * LyX tries to delete /tmp if it is called with invalid arguments
FIXED (Enrico 2006-12-13) FIXED (Enrico 2006-12-13)
* Start lyx, open a document, scroll down, open a new window, move
the cursor back, lyx crashes because par::rows() is cleared when the
new window is created.
FIXED (Bo 2006-12-13)

View File

@ -999,6 +999,12 @@ InsetBase * LyXText::editXY(LCursor & cur, int x, int y)
} }
pit_type pit = getPitNearY(cur.bv(), y); pit_type pit = getPitNearY(cur.bv(), y);
BOOST_ASSERT(pit != -1); BOOST_ASSERT(pit != -1);
// When another window is opened with the same document, rows()
// will be cleared so pars_[pit].rows() might be empty when switching
// between windwos. A better solution is that each buffer view
// has its own rows() for the same buffer.
if (pars_[pit].rows().empty())
redoParagraph(cur.bv(), pit);
Row const & row = getRowNearY(cur.bv(), y, pit); Row const & row = getRowNearY(cur.bv(), y, pit);
bool bound = false; bool bound = false;