Jean-Marc Lasgouttes wrote:
"Leuven, E." <[EMAIL PROTECTED]> writes:

Abdelrazak Younes wrote:
We have this discussion every once in a while... I strongly believe
on the contrary that the multiple level of dispatch() is very, *very*
wrong. LyXFunc::dispatch() calling Cursor::dispatch() calling Text::dispatch() calling Cursor::dispatch() calling
LyXFunc::dispatch() calling Cursor::dispatch() calling
Text::dispatch() to end up in the same Text at the end... talk about
efficiency...

I do not think that efficiency is a real issue in this. But how do we
make sure that haveSelection is handled properly? How do we maje sure
that the document is marked dirty as needed? How do we make sure that
dispatch does nothing (instead of crashing maybe) when it is in a
situation where the lfun should do nothing.

We do not have any reason to believe that this really slows down LyX,
do we?

Invoking LyXFunc::dispatch() will always trigger a metrics update and a redraw so yes, I am pretty sure this would slow down scrolling; and scrolling is not particularly fast already)...


and there is also the issue of transparency (if i may chime in...)

You may, of course. Hello Edwin :)

I really think that things are easier of one just invokes lyx:dispatch
and is assured that it does the right thing. We had (have?) many bugs
due to someone calling Text::dispatch with the wrong Text object (but
only in some weird cases that may be difficult to understand, to make
things funnier).

Actually, I prefer to call the relevant function directly in this
case, unless one has a strong reason to use an LFUN. If the message
you want to convey is "I do as if the LFUN foo has been invoked", then
really invoke it.

We agree then.

Abdel.

Reply via email to