Hello Jean-Marc,
> > I continue my backwards visit of history. I carefully followed your reviews and modified the code accordingly. Your comments on them were really useful. > I forgot a couple of remarks in this commit. > > - RowPainter rp(pi, *text_, pit, row, bidi, x, y); > + > + cur.setTargetX(); > > Do you really need to set targetX? This seems plain wrong to me since, > if it was set to some useful value, you are just killing this value. As I have removed the too_wide_offset_ value modification from that method, I think it is better to remove. Then hopefully the constant method "void Cursor::setTargetX() const" implemented by myself can be removed from Cursor.cpp and Cursor.h. > + BufferView & bv = cur.bv(); > + > > You are defining bv, whereas you already have bv_, which is a BufferView > const *. Advice: always check whether a variable is needed before > defining it. > > However in this case the situation is different since you want a > non-const cursor. A way to have is is to get a non-const BufferView. It > often happens in such methods that extra data is provided in ancillary > parameters, in this case pi (PainterInfo). > > In particular in pi you have pi.bv, which is a pointer to the buffer > view. Therefore you can change the definition of cur to > Cursor & cur = pi.bv.cursor(); But I think changing the definition of cur is not suitable, because that exists there and as its definition is like this: Cursor const & cur; in this drawParagraph() method cur is used with most of the constant methods. So, or else should we define another Cursor variable which is non-constant? Thank you Hashini