]> git.lyx.org Git - lyx.git/commitdiff
Fix assertion when checking if change in selection
authorScott Kostyshak <skostysh@lyx.org>
Fri, 28 Dec 2018 15:40:38 +0000 (10:40 -0500)
committerScott Kostyshak <skostysh@lyx.org>
Fri, 28 Dec 2018 15:46:30 +0000 (10:46 -0500)
The check for the iterator being in the same paragraph as the end of
selection was incorrect, because paragraphs in different cells could
have the same pit. We now additionally condition on having the same
idx.

This commit amends d1279875 (and thus 23de5e5e).

For discussion, see:

  https://www.mail-archive.com/search?l=mid&q=a5afd0c01a0eb9a84fd4d050d15eb23016d6f38a.camel%40lyx.org

Thanks to Jürgen.

src/Text3.cpp

index 7b8f2f9a2a746f5567d49325c0146cee4988ae46..8507f74494efee7b664eb33a90d402d8a580fd3f 100644 (file)
@@ -3233,7 +3233,8 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                        for (DocIterator it = cur.selectionBegin(); ; it.forwardPar()) {
                                pos_type const beg = it.pos();
                                pos_type end;
-                               bool const in_last_par = (it.pit() == cur.selectionEnd().pit());
+                               bool const in_last_par = (it.pit() == cur.selectionEnd().pit() &&
+                                                         it.idx() == cur.selectionEnd().idx());
                                if (in_last_par)
                                        end = cur.selectionEnd().pos();
                                else