Reset the (running) change in PainterInfo

When an InsetText is deleted, all lines in the inset are painted as
deleted. This status should be restored afterwards. If not, insets will be
painted in the wrong color afterwards (e.g. tables).

(cherry picked from commit af4e31ec28)
This commit is contained in:
Vincent van Ravesteijn 2012-04-29 13:44:58 +02:00
parent 76bff4cc04
commit a102ba7564
2 changed files with 5 additions and 0 deletions

View File

@ -128,6 +128,7 @@ void RowPainter::paintInset(Inset const * inset, pos_type const pos)
pi_.base.font = inset->inheritFont() ? font.fontInfo() :
pi_.base.bv->buffer().params().getFont().fontInfo();
pi_.ltr_pos = (bidi_.level(pos) % 2 == 0);
Change prev_change = change_;
pi_.change_ = change_.changed() ? change_ : par_.lookupChange(pos);
int const x1 = int(x_);
@ -147,6 +148,7 @@ void RowPainter::paintInset(Inset const * inset, pos_type const pos)
// Restore full_repaint status.
pi_.full_repaint = pi_full_repaint;
pi_.change_ = prev_change;
#ifdef DEBUG_METRICS
int const x2 = x1 + dim.wid;

View File

@ -157,6 +157,9 @@ What's new
- Fix erroneous error message when calling "buffer-language" manually.
- Fix coloring of insets that come after deleted text insets with
change tracking on.
* DOCUMENTATION AND LOCALIZATION