Jean-Marc Lasgouttes wrote:
"Abdelrazak" == Abdelrazak Younes <[EMAIL PROTECTED]> writes:

The fact that the bv is not known where it should be simply
indicates that the methods in questions are lacking a bv parameter.
For example InsetTabular::dist should have this parameter, which
means that InsetTabular::getNearestCell should have it too (which
is not a problem since there is a cursor around when it is called).
All these changes make sense, so they should be done.

Abdelrazak> The think is that once we add the additional argument
Abdelrazak> somewhere then it will be needed to all methods in the
Abdelrazak> calling hierarchy (butterfly effect).

Yes, but I suspect that the bv is known without going too high in the
hierarchy.

I am blocked at TextPainter. So either I add BufferView to its constructor or I pass BufferView to all drawT() methods. I think I prefer the first solution. Or even better, get rid of TextPainter.


Abdelrazak> Passing BufferView to every method of InsetBase does not
Abdelrazak> seem very clean to me. I would prefer to add a BufferView
Abdelrazak> reference member to InsetBase filled at construction. I
Abdelrazak> don't think InsetBase should be BufferView independent but
Abdelrazak> perhaps I am wrong. What do you think?

Is it every methods? It is needed for things like xo(), which are
definitely BufferView-dependent. The two solutions are

- add a BufferView const & argument to InsetBase::[xy]o() and
InsetBase::covers.

I've done that already.


- move these methods (which are not virtual anyway) out of InsetBase.
  They could be replaced by a helper function in bufferview_funcs, for
  example. Things like dist() could be moved also.

Too much work for now I guess. So I'd rather stay with the first solution above (which I already did in my local tree).

Abdel.

Reply via email to