Fix the "can't move out of nested text insets using pageup/down"

and a few cases of the "can't scroll over large notes" annoyances.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5381 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2002-10-11 10:45:28 +00:00
parent f789d1a4be
commit 816344ab1d
5 changed files with 39 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2002-10-11 André Pönitz <poenitz@gmx.net>
* lytext.h: make some functions public to allow access
from inset/lyxtext for handling LFUN_PRIOR/NEXT
2002-10-09 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr> 2002-10-09 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* text3.C (dispatch): when changing layout, avoid an infinite loop * text3.C (dispatch): when changing layout, avoid an infinite loop

View File

@ -1,3 +1,8 @@
2002-10-11 André Pönitz <poenitz@gmx.net>
* insettext.h: handle LFUN_PRIOR/NEXT
2002-07-30 Juergen Spitzmueller <j.spitzmueller@gmx.de> 2002-07-30 Juergen Spitzmueller <j.spitzmueller@gmx.de>
* insetfloat.C: fix bug with float settings * insetfloat.C: fix bug with float settings

View File

@ -1340,6 +1340,24 @@ Inset::RESULT InsetText::localDispatch(FuncRequest const & ev)
lt->cursorEnd(bv); lt->cursorEnd(bv);
updwhat = CURSOR; updwhat = CURSOR;
break; break;
case LFUN_PRIOR:
if (!crow(bv)->previous())
result = FINISHED_UP;
else {
lt->cursorPrevious(bv);
result = DISPATCHED_NOUPDATE;
}
updwhat = CURSOR;
break;
case LFUN_NEXT:
if (!crow(bv)->next())
result = FINISHED_DOWN;
else {
lt->cursorNext(bv);
result = DISPATCHED_NOUPDATE;
}
updwhat = CURSOR;
break;
case LFUN_BACKSPACE: { case LFUN_BACKSPACE: {
setUndo(bv, Undo::DELETE, setUndo(bv, Undo::DELETE,
lt->cursor.par(), lt->cursor.par()->next()); lt->cursor.par(), lt->cursor.par()->next());
@ -1896,8 +1914,7 @@ InsetText::moveLeftIntern(BufferView * bv, bool front,
} }
Inset::RESULT Inset::RESULT InsetText::moveUp(BufferView * bv)
InsetText::moveUp(BufferView * bv)
{ {
if (!crow(bv)->previous()) if (!crow(bv)->previous())
return FINISHED_UP; return FINISHED_UP;
@ -1906,8 +1923,7 @@ InsetText::moveUp(BufferView * bv)
} }
Inset::RESULT Inset::RESULT InsetText::moveDown(BufferView * bv)
InsetText::moveDown(BufferView * bv)
{ {
if (!crow(bv)->next()) if (!crow(bv)->next())
return FINISHED_DOWN; return FINISHED_DOWN;

View File

@ -346,6 +346,10 @@ public:
/// ///
void cursorEnd(BufferView *) const; void cursorEnd(BufferView *) const;
/// ///
void cursorPrevious(BufferView * bv);
///
void cursorNext(BufferView * bv);
///
void cursorTab(BufferView *) const; void cursorTab(BufferView *) const;
/// ///
void cursorTop(BufferView *) const; void cursorTop(BufferView *) const;
@ -487,10 +491,6 @@ private:
/// ///
void cursorLeftOneWord(LyXCursor &) const; void cursorLeftOneWord(LyXCursor &) const;
///
void cursorPrevious(BufferView * bv);
///
void cursorNext(BufferView * bv);
/// ///
float getCursorX(BufferView *, Row *, lyx::pos_type pos, float getCursorX(BufferView *, Row *, lyx::pos_type pos,

View File

@ -26,7 +26,9 @@ string verboseHLine(int n)
string res; string res;
for (int i = 0; i < n; ++i) for (int i = 0; i < n; ++i)
res += "\\hline"; res += "\\hline";
return res + ' '; if (n)
res += " ";
return res;
} }
} }