X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FParagraphMetrics.cpp;h=1fd248f66396c00dac5e19acaaf9c8cdf8a20a71;hb=02847641a8b97a57d1866120bb446427e0bda7a4;hp=56660919a2ce0fe1ad818d4991f8ebc7a5400eee;hpb=ffc693c87ff17d8826befba9db7106cfc7bda900;p=lyx.git diff --git a/src/ParagraphMetrics.cpp b/src/ParagraphMetrics.cpp index 56660919a2..1fd248f663 100644 --- a/src/ParagraphMetrics.cpp +++ b/src/ParagraphMetrics.cpp @@ -86,13 +86,20 @@ void ParagraphMetrics::reset(Paragraph const & par) size_t ParagraphMetrics::computeRowSignature(Row const & row, - BufferParams const & bparams) const + BufferView const & bv) const { boost::crc_32_type crc; for (pos_type i = row.pos(); i < row.endpos(); ++i) { - char_type const b[] = { par_->getChar(i) }; - crc.process_bytes(b, sizeof(char_type)); - if (bparams.track_changes) { + if (par_->isInset(i)) { + Inset const * in = par_->getInset(i); + Dimension const d = in->dimension(bv); + int const b[] = { d.wid, d.asc, d.des }; + crc.process_bytes(b, sizeof(b)); + } else { + char_type const b[] = { par_->getChar(i) }; + crc.process_bytes(b, sizeof(char_type)); + } + if (bv.buffer().params().track_changes) { Change change = par_->lookupChange(i); char_type const b[] = { static_cast(change.type) }; // 1 byte is enough to encode Change::Type