]> git.lyx.org Git - features.git/commitdiff
Fix bug 5666: assertion when an inset is outside of workwidth
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 10 Feb 2009 22:27:43 +0000 (22:27 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 10 Feb 2009 22:27:43 +0000 (22:27 +0000)
http://bugzilla.lyx.org/show_bug.cgi?id=5666

Check whether an inset is in the coordcache before reading this cache (doh!)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28439 a592a061-630c-0410-9148-cb99ea01b6c8

src/rowpainter.cpp

index 46544b3256826cbc9ee808a309e2255a7066e3ee..a0b554e676ae0e5a59a1934c6f602af1a3b22ad2 100644 (file)
@@ -655,15 +655,17 @@ void RowPainter::paintLast()
 
 void RowPainter::paintOnlyInsets()
 {
+       CoordCache const & cache = pi_.base.bv->coordCache();
        pos_type const end = row_.endpos();
        for (pos_type pos = row_.pos(); pos != end; ++pos) {
                // If outer row has changed, nested insets are repaint completely.
                Inset const * inset = par_.getInset(pos);
                if (!inset)
                        continue;
-               if (x_ > pi_.base.bv->workWidth())
+               if (x_ > pi_.base.bv->workWidth() 
+                   || !cache.getInsets().has(inset))
                        continue;
-               x_ = pi_.base.bv->coordCache().getInsets().x(inset);
+               x_ = cache.getInsets().x(inset);
 
                bool const pi_selected = pi_.selected;
                Cursor const & cur = pi_.base.bv->cursor();