mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
let's always repaint the row with the cursor in it
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10696 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
cfcb59904b
commit
aa8478b7e5
@ -1,3 +1,8 @@
|
||||
2006-01-01 Martin Vermeer <martin.vermeer@hut.fi>
|
||||
|
||||
* rowpainter.C (paintPar): always repaint the row with the
|
||||
cursor in it
|
||||
|
||||
2006-01-01 Lars Gullik Bjønnes <larsbj@gullik.net>
|
||||
|
||||
* MenuBackend.h:
|
||||
|
@ -729,17 +729,14 @@ lyx::size_type calculateRowSignature(Row const & row, Paragraph const & par)
|
||||
}
|
||||
|
||||
|
||||
bool isCursorInInsetInRow(PainterInfo & pi, RowList::const_iterator rit,
|
||||
Paragraph const & par)
|
||||
bool isCursorOnRow(PainterInfo & pi, pit_type pit, RowList::const_iterator rit)
|
||||
{
|
||||
InsetList::const_iterator ii = par.insetlist.begin();
|
||||
InsetList::const_iterator iend = par.insetlist.end();
|
||||
for ( ; ii != iend; ++ii) {
|
||||
if (ii->pos >= rit->pos() && ii->pos < rit->endpos()
|
||||
&& ii->inset->isTextInset()
|
||||
&& pi.base.bv->cursor().isInside(ii->inset))
|
||||
LCursor & cur = pi.base.bv->cursor();
|
||||
for (lyx::size_type d = 0; d < cur.depth(); d++)
|
||||
if (cur[d].pit() == pit
|
||||
&& cur[d].pos() >= rit->pos()
|
||||
&& cur[d].pos() < rit->endpos())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -767,15 +764,13 @@ void paintPar
|
||||
// Row signature; has row changed since last paint?
|
||||
lyx::size_type const row_sig = calculateRowSignature(*rit, par);
|
||||
|
||||
// The following code figures out if the cursor is inside
|
||||
// an inset _on this row_.
|
||||
bool cur_in_inset_in_row = isCursorInInsetInRow(pi, rit, par);
|
||||
bool cursor_on_row = isCursorOnRow(pi, pit, rit);
|
||||
|
||||
// If selection is on, the current row signature differs from
|
||||
// from cache, or cursor is inside an inset _on this row_,
|
||||
// then paint the row
|
||||
if (repaintAll || par.rowSignature()[rowno] != row_sig
|
||||
|| cur_in_inset_in_row) {
|
||||
|| cursor_on_row) {
|
||||
// Add to row signature cache
|
||||
par.rowSignature()[rowno] = row_sig;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user