diff --git a/src/ChangeLog b/src/ChangeLog index b29558cacc..4375184811 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2006-03-16 Félix-Antoine Bourbonnais + + * text3.C (dispatch): set needsUpdate according to the return + value of the methods below (bug 2298) + + * text2.C (cursorTop, cursorBottom, cursorHome, cursorEnd): return + true if dEPM triggered. + 2006-03-16 Jürgen Spitzmüller * text.C (getPossibleLabel): get a sensible prefix inside figure and diff --git a/src/lyxtext.h b/src/lyxtext.h index ff60fe323b..e5cc72d738 100644 --- a/src/lyxtext.h +++ b/src/lyxtext.h @@ -209,17 +209,17 @@ public: /// bool cursorDownParagraph(LCursor & cur); /// - void cursorHome(LCursor & cur); + bool cursorHome(LCursor & cur); /// - void cursorEnd(LCursor & cur); + bool cursorEnd(LCursor & cur); /// bool cursorPrevious(LCursor & cur); /// bool cursorNext(LCursor & cur); /// - void cursorTop(LCursor & cur); + bool cursorTop(LCursor & cur); /// - void cursorBottom(LCursor & cur); + bool cursorBottom(LCursor & cur); /// Delete character at cursor. Honour change tracking bool Delete(LCursor & cur); /** At cursor position 0, merge paragraph with the one before it. diff --git a/src/text2.C b/src/text2.C index fea1c4c697..42ee4e5358 100644 --- a/src/text2.C +++ b/src/text2.C @@ -476,16 +476,16 @@ void LyXText::setFont(LCursor & cur, LyXFont const & font, bool toggleall) // the cursor set functions have a special mechanism. When they // realize you left an empty paragraph, they will delete it. -void LyXText::cursorHome(LCursor & cur) +bool LyXText::cursorHome(LCursor & cur) { BOOST_ASSERT(this == cur.text()); Row const & row = cur.paragraph().getRow(cur.pos(),cur.boundary()); - setCursor(cur, cur.pit(), row.pos()); + return setCursor(cur, cur.pit(), row.pos()); } -void LyXText::cursorEnd(LCursor & cur) +bool LyXText::cursorEnd(LCursor & cur) { BOOST_ASSERT(this == cur.text()); // if not on the last row of the par, put the cursor before @@ -494,7 +494,7 @@ void LyXText::cursorEnd(LCursor & cur) pos_type end = cur.textRow().endpos(); if (end == 0) // empty text, end-1 is no valid position - return; + return false; bool boundary = false; if (end != cur.lastpos()) { if (!cur.paragraph().isLineSeparator(end-1) @@ -503,21 +503,21 @@ void LyXText::cursorEnd(LCursor & cur) else --end; } - setCursor(cur, cur.pit(), end, true, boundary); + return setCursor(cur, cur.pit(), end, true, boundary); } -void LyXText::cursorTop(LCursor & cur) +bool LyXText::cursorTop(LCursor & cur) { BOOST_ASSERT(this == cur.text()); - setCursor(cur, 0, 0); + return setCursor(cur, 0, 0); } -void LyXText::cursorBottom(LCursor & cur) +bool LyXText::cursorBottom(LCursor & cur) { BOOST_ASSERT(this == cur.text()); - setCursor(cur, cur.lastpit(), boost::prior(paragraphs().end())->size()); + return setCursor(cur, cur.lastpit(), boost::prior(paragraphs().end())->size()); } diff --git a/src/text3.C b/src/text3.C index a06748a0a2..f34b24ab10 100644 --- a/src/text3.C +++ b/src/text3.C @@ -387,7 +387,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) if (cur.depth() == 1) { if (!cur.mark()) cur.clearSelection(); - cursorTop(cur); + needsUpdate = cursorTop(cur); finishChange(cur, false); } else { cur.undispatched(); @@ -398,7 +398,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) if (cur.depth() == 1) { if (!cur.selection()) cur.resetAnchor(); - cursorTop(cur); + needsUpdate = cursorTop(cur); finishChange(cur, true); } else { cur.undispatched(); @@ -409,7 +409,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) if (cur.depth() == 1) { if (!cur.mark()) cur.clearSelection(); - cursorBottom(cur); + needsUpdate = cursorBottom(cur); finishChange(cur, false); } else { cur.undispatched(); @@ -420,7 +420,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) if (cur.depth() == 1) { if (!cur.selection()) cur.resetAnchor(); - cursorBottom(cur); + needsUpdate = cursorBottom(cur); finishChange(cur, true); } else { cur.undispatched(); @@ -520,7 +520,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) update(cur); if (!cur.selection()) cur.resetAnchor(); - cursorPrevious(cur); + needsUpdate = cursorPrevious(cur); finishChange(cur, true); break; @@ -528,7 +528,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) update(cur); if (!cur.selection()) cur.resetAnchor(); - cursorNext(cur); + needsUpdate = cursorNext(cur); finishChange(cur, true); break; @@ -536,7 +536,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) update(cur); if (!cur.selection()) cur.resetAnchor(); - cursorHome(cur); + needsUpdate = cursorHome(cur); finishChange(cur, true); break; @@ -544,7 +544,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) update(cur); if (!cur.selection()) cur.resetAnchor(); - cursorEnd(cur); + needsUpdate = cursorEnd(cur); finishChange(cur, true); break; @@ -604,14 +604,14 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) case LFUN_HOME: if (!cur.mark()) cur.clearSelection(); - cursorHome(cur); + needsUpdate = cursorHome(cur); finishChange(cur, false); break; case LFUN_END: if (!cur.mark()) cur.clearSelection(); - cursorEnd(cur); + needsUpdate = cursorEnd(cur); finishChange(cur, false); break;