From 11c69712d36a6e8c0d2234244bc5419a34d3ce70 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Sat, 14 Aug 2004 21:03:55 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8931 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/dociterator.C | 11 +++++++++++ src/dociterator.h | 3 +++ src/mathed/math_nestinset.C | 2 +- src/text3.C | 4 ++-- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/dociterator.C b/src/dociterator.C index e8f4c0012b..2df577b5f4 100644 --- a/src/dociterator.C +++ b/src/dociterator.C @@ -410,6 +410,17 @@ void DocIterator::backwardPos() } +bool DocIterator::hasPart(DocIterator const & it) const +{ + // it can't be a part if it is larger + if (it.size() > size()) + return false; + + // as inset adresses are the 'last' level + return &it.back().inset() == &operator[](it.size() - 1).inset(); +} + + std::ostream & operator<<(std::ostream & os, DocIterator const & dit) { for (size_t i = 0, n = dit.size(); i != n; ++i) diff --git a/src/dociterator.h b/src/dociterator.h index d00add62d4..bb1f12832d 100644 --- a/src/dociterator.h +++ b/src/dociterator.h @@ -185,6 +185,9 @@ public: /// move backward one inset void backwardInset(); + /// are we some 'extension' (i.e. deeper nested) of the given iterator + bool hasPart(DocIterator const & it) const; + /// output friend std::ostream & operator<<(std::ostream & os, DocIterator const & cur); diff --git a/src/mathed/math_nestinset.C b/src/mathed/math_nestinset.C index 3b82d0e65c..f2986ee752 100644 --- a/src/mathed/math_nestinset.C +++ b/src/mathed/math_nestinset.C @@ -927,7 +927,7 @@ void MathNestInset::lfunMouseMotion(LCursor & cur, FuncRequest & cmd) if (cmd.button() == mouse_button::button1) { LCursor & bvcur = cur.bv().cursor(); if (abs(cmd.x - first_x) + abs(cmd.y - first_y) > 4 - && cur.size() <= bvcur.anchor_.size()) { + && bvcur.anchor_.hasPart(cur)) { first_x = cmd.x; first_y = cmd.y; diff --git a/src/text3.C b/src/text3.C index 3900a13a11..0b230da156 100644 --- a/src/text3.C +++ b/src/text3.C @@ -1129,9 +1129,9 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) // ignore motions deeper nested than the real anchor LCursor & bvcur = cur.bv().cursor(); - if (bvcur.anchor_.size() < cur.size()) + if (!bvcur.anchor_.hasPart(cur)) break; - + CursorSlice old = cur.top(); setCursorFromCoordinates(cur, cmd.x, cmd.y); -- 2.39.2