]> git.lyx.org Git - features.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>
Sat, 29 Dec 2018 04:56:53 +0000 (23:56 -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.

(cherry picked from commit c5301a6495b108df5b307da39dad5be65926f76b)

src/Text3.cpp

index b5f9e33f47cd8e99391255d0bf4f7549337b65d3..8bd5d10e6b624d6231c49322517cec1d69906b0c 100644 (file)
@@ -3210,7 +3210,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