mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
bug 2298: cursorTop/Bottom/Home/End does not redraw after dEPM
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13395 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
24df3cbc06
commit
08604e3519
@ -1,3 +1,11 @@
|
|||||||
|
2006-03-16 Félix-Antoine Bourbonnais <bouf10pub2@myriade.ca>
|
||||||
|
|
||||||
|
* 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 <j.spitzmueller@gmx.de>
|
2006-03-16 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||||
|
|
||||||
* text.C (getPossibleLabel): get a sensible prefix inside figure and
|
* text.C (getPossibleLabel): get a sensible prefix inside figure and
|
||||||
|
@ -209,17 +209,17 @@ public:
|
|||||||
///
|
///
|
||||||
bool cursorDownParagraph(LCursor & cur);
|
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 cursorPrevious(LCursor & cur);
|
||||||
///
|
///
|
||||||
bool cursorNext(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
|
/// Delete character at cursor. Honour change tracking
|
||||||
bool Delete(LCursor & cur);
|
bool Delete(LCursor & cur);
|
||||||
/** At cursor position 0, merge paragraph with the one before it.
|
/** At cursor position 0, merge paragraph with the one before it.
|
||||||
|
18
src/text2.C
18
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
|
// the cursor set functions have a special mechanism. When they
|
||||||
// realize you left an empty paragraph, they will delete it.
|
// 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());
|
BOOST_ASSERT(this == cur.text());
|
||||||
Row const & row = cur.paragraph().getRow(cur.pos(),cur.boundary());
|
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());
|
BOOST_ASSERT(this == cur.text());
|
||||||
// if not on the last row of the par, put the cursor before
|
// 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();
|
pos_type end = cur.textRow().endpos();
|
||||||
if (end == 0)
|
if (end == 0)
|
||||||
// empty text, end-1 is no valid position
|
// empty text, end-1 is no valid position
|
||||||
return;
|
return false;
|
||||||
bool boundary = false;
|
bool boundary = false;
|
||||||
if (end != cur.lastpos()) {
|
if (end != cur.lastpos()) {
|
||||||
if (!cur.paragraph().isLineSeparator(end-1)
|
if (!cur.paragraph().isLineSeparator(end-1)
|
||||||
@ -503,21 +503,21 @@ void LyXText::cursorEnd(LCursor & cur)
|
|||||||
else
|
else
|
||||||
--end;
|
--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());
|
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());
|
BOOST_ASSERT(this == cur.text());
|
||||||
setCursor(cur, cur.lastpit(), boost::prior(paragraphs().end())->size());
|
return setCursor(cur, cur.lastpit(), boost::prior(paragraphs().end())->size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
20
src/text3.C
20
src/text3.C
@ -387,7 +387,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
if (cur.depth() == 1) {
|
if (cur.depth() == 1) {
|
||||||
if (!cur.mark())
|
if (!cur.mark())
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
cursorTop(cur);
|
needsUpdate = cursorTop(cur);
|
||||||
finishChange(cur, false);
|
finishChange(cur, false);
|
||||||
} else {
|
} else {
|
||||||
cur.undispatched();
|
cur.undispatched();
|
||||||
@ -398,7 +398,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
if (cur.depth() == 1) {
|
if (cur.depth() == 1) {
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
cur.resetAnchor();
|
cur.resetAnchor();
|
||||||
cursorTop(cur);
|
needsUpdate = cursorTop(cur);
|
||||||
finishChange(cur, true);
|
finishChange(cur, true);
|
||||||
} else {
|
} else {
|
||||||
cur.undispatched();
|
cur.undispatched();
|
||||||
@ -409,7 +409,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
if (cur.depth() == 1) {
|
if (cur.depth() == 1) {
|
||||||
if (!cur.mark())
|
if (!cur.mark())
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
cursorBottom(cur);
|
needsUpdate = cursorBottom(cur);
|
||||||
finishChange(cur, false);
|
finishChange(cur, false);
|
||||||
} else {
|
} else {
|
||||||
cur.undispatched();
|
cur.undispatched();
|
||||||
@ -420,7 +420,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
if (cur.depth() == 1) {
|
if (cur.depth() == 1) {
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
cur.resetAnchor();
|
cur.resetAnchor();
|
||||||
cursorBottom(cur);
|
needsUpdate = cursorBottom(cur);
|
||||||
finishChange(cur, true);
|
finishChange(cur, true);
|
||||||
} else {
|
} else {
|
||||||
cur.undispatched();
|
cur.undispatched();
|
||||||
@ -520,7 +520,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
update(cur);
|
update(cur);
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
cur.resetAnchor();
|
cur.resetAnchor();
|
||||||
cursorPrevious(cur);
|
needsUpdate = cursorPrevious(cur);
|
||||||
finishChange(cur, true);
|
finishChange(cur, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -528,7 +528,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
update(cur);
|
update(cur);
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
cur.resetAnchor();
|
cur.resetAnchor();
|
||||||
cursorNext(cur);
|
needsUpdate = cursorNext(cur);
|
||||||
finishChange(cur, true);
|
finishChange(cur, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
update(cur);
|
update(cur);
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
cur.resetAnchor();
|
cur.resetAnchor();
|
||||||
cursorHome(cur);
|
needsUpdate = cursorHome(cur);
|
||||||
finishChange(cur, true);
|
finishChange(cur, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -544,7 +544,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
update(cur);
|
update(cur);
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
cur.resetAnchor();
|
cur.resetAnchor();
|
||||||
cursorEnd(cur);
|
needsUpdate = cursorEnd(cur);
|
||||||
finishChange(cur, true);
|
finishChange(cur, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -604,14 +604,14 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
case LFUN_HOME:
|
case LFUN_HOME:
|
||||||
if (!cur.mark())
|
if (!cur.mark())
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
cursorHome(cur);
|
needsUpdate = cursorHome(cur);
|
||||||
finishChange(cur, false);
|
finishChange(cur, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_END:
|
case LFUN_END:
|
||||||
if (!cur.mark())
|
if (!cur.mark())
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
cursorEnd(cur);
|
needsUpdate = cursorEnd(cur);
|
||||||
finishChange(cur, false);
|
finishChange(cur, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user