From 74602628f6a407b549f8409d5bb0e4f2667472bd Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Thu, 14 Dec 2006 03:41:32 +0000 Subject: [PATCH] Fix the multiple window rows() availability bug git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16273 a592a061-630c-0410-9148-cb99ea01b6c8 --- Status.15x | 5 +++++ src/text2.C | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/Status.15x b/Status.15x index bc4ed86000..67c152c96b 100644 --- a/Status.15x +++ b/Status.15x @@ -577,3 +577,8 @@ CREDITS: * LyX tries to delete /tmp if it is called with invalid arguments 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) + diff --git a/src/text2.C b/src/text2.C index 0947c0303b..0670e616e6 100644 --- a/src/text2.C +++ b/src/text2.C @@ -999,6 +999,12 @@ InsetBase * LyXText::editXY(LCursor & cur, int x, int y) } pit_type pit = getPitNearY(cur.bv(), y); 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); bool bound = false; -- 2.39.5