mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
Do not modify the changed() status of rows when no drawing has taken place
There are several places in the code where a row is painted with drawing disabled in the painter. The goal is only to recompute inset positions. Such a case happens in BufferView::checkCursorScrollOffset, as part of the horizontal scrolling patch. It makes sens to consider that only a real painting of a row should change its status. However, I would not be surprised if this change would break other things. Fixes: #9388
This commit is contained in:
parent
fdf41cfdd4
commit
c6f8f51525
@ -1878,6 +1878,7 @@ void TextMetrics::drawParagraph(PainterInfo & pi, pit_type const pit, int const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Row signature; has row changed since last paint?
|
// Row signature; has row changed since last paint?
|
||||||
|
if (pi.pain.isDrawingEnabled())
|
||||||
row.setCrc(pm.computeRowSignature(row, bparams));
|
row.setCrc(pm.computeRowSignature(row, bparams));
|
||||||
bool row_has_changed = row.changed()
|
bool row_has_changed = row.changed()
|
||||||
|| rowSlice == bv_->lastRowSlice();
|
|| rowSlice == bv_->lastRowSlice();
|
||||||
@ -1916,7 +1917,8 @@ void TextMetrics::drawParagraph(PainterInfo & pi, pit_type const pit, int const
|
|||||||
LYXERR(Debug::PAINTING, foreword << "pit=" << pit << " row=" << i
|
LYXERR(Debug::PAINTING, foreword << "pit=" << pit << " row=" << i
|
||||||
<< " row_selection=" << row.selection()
|
<< " row_selection=" << row.selection()
|
||||||
<< " full_repaint=" << pi.full_repaint
|
<< " full_repaint=" << pi.full_repaint
|
||||||
<< " row_has_changed=" << row_has_changed);
|
<< " row_has_changed=" << row_has_changed
|
||||||
|
<< " drawingEnabled=" << pi.pain.isDrawingEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Backup full_repaint status and force full repaint
|
// Backup full_repaint status and force full repaint
|
||||||
|
Loading…
Reference in New Issue
Block a user