]> git.lyx.org Git - features.git/commitdiff
Fix regression of 359aef92f87
authorGeorg Baum <baum@lyx.org>
Sat, 17 Oct 2015 16:13:18 +0000 (18:13 +0200)
committerGeorg Baum <baum@lyx.org>
Sun, 18 Oct 2015 13:26:12 +0000 (15:26 +0200)
The context menu did no longer work for some insets, since it requires the
cursor to be in front, and editXY() is also used to determine the inset for
the context menu. Now the cursor is corrected if needed.

src/BufferView.cpp

index b07eb2b37f71ed2ed695fedc1b914beeaf82a13f..24be1624ce759bbe3606895cbac163fa5c6d6d9c 100644 (file)
@@ -2249,6 +2249,15 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0)
 
        // Build temporary cursor.
        Inset * inset = d->text_metrics_[&buffer_.text()].editXY(cur, cmd.x(), cmd.y());
+       if (inset) {
+               // If inset is not editable, cur.pos() might point behind the
+               // inset (depending on cmd.x(), cmd.y()). This is needed for
+               // editing to fix bug 9628, but e.g. the context menu needs a
+               // cursor in front of the inset.
+               if (inset->hasSettings() &&
+                   cur.nextInset() != inset && cur.prevInset() == inset)
+                       cur.backwardPos();
+       }
 
        // Put anchor at the same position.
        cur.resetAnchor();