]> git.lyx.org Git - features.git/commitdiff
Fix PageDown/Up temporarily.
authorAbdelrazak Younes <younes@lyx.org>
Wed, 12 Sep 2007 08:15:56 +0000 (08:15 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Wed, 12 Sep 2007 08:15:56 +0000 (08:15 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20237 a592a061-630c-0410-9148-cb99ea01b6c8

src/TextMetrics.cpp
src/bufferview_funcs.cpp

index 9ea86744566b2873085e9836ffe7618b9d4cc61e..f00bb10279f70b04850f622a415a122dc7127886 100644 (file)
@@ -1535,7 +1535,7 @@ void TextMetrics::cursorNext(Cursor & cur)
 
        int x = cur.x_target();
        setCursorFromCoordinates(cur, x, cur.bv().workHeight() - 1);
-       cur.dispatch(FuncRequest(cur.selection()? LFUN_DOWN_SELECT: LFUN_DOWN));
+       text_->dispatch(cur, FuncRequest(cur.selection()? LFUN_DOWN_SELECT: LFUN_DOWN));
 
        if (cpar == cur.pit() && cpos == cur.pos())
                // we have a row which is taller than the workarea. The
index 6c218eb53e964d3a2b49eb31278cb623e5d85bfd..e8c3eff286ef527150525a3012ca6edecb07cb11 100644 (file)
@@ -245,13 +245,23 @@ Point getPos(BufferView const & bv, DocIterator const & dit, bool boundary)
 // FIXME: This does not work within mathed!
 CurStatus status(BufferView const * bv, DocIterator const & dit)
 {
+       // FIXME: it's be better to have something like TextMetrics::status().
        TextMetrics const & tm = bv->textMetrics(dit.bottom().text());
-       if (tm.has(dit.bottom().pit()))
-               return CUR_INSIDE;
-       else if (dit.bottom().pit() < bv->anchor_ref())
+       pit_type const pit = dit.bottom().pit();
+       if (!tm.has(pit)) {
+               if (dit.bottom().pit() < bv->anchor_ref())
+                       return CUR_ABOVE;
+               else
+                       return CUR_BELOW;
+       }
+
+       ParagraphMetrics const & pm = tm.parMetrics(pit);
+       if (pm.position() < 0)
                return CUR_ABOVE;
-       else
+       else if (pm.position() > bv->workHeight())
                return CUR_BELOW;
+               
+       return CUR_INSIDE;
 }
 
 namespace {