Jean-Marc Lasgouttes wrote:

OK, I tried to do something, but since I cannot get a hold of what is
the logic about where the updates are done (they used to be
centralized at the end of LyXFunc::dispatch,

The BufferView update is done in BufferView::processUpdateFlags() called at the end of dispatch(). This method may or may not trigger a screen redraw by emitting the Buffer::changed signal.

now they are several
'return' shortcuts in there and GuiView::dispatch seems to do its own

When an action is triggered from the GUI, it does not go through LyXFunc::dispatch() first but is directly handled by LyXView::dispatch(). This is because we have to make sure that the current LyXView (as pointed by LyXFunc) is the correct one.

I give up: I would break the code even more. At least now I
can assume that you know how it works.


I do not really understand though why there is in GuiView code like
INSET_APPLY that requires access to a cursor. I would think this is a
bufferview thing.

Maybe yes but not really sure because INSET_APPLY is a just a Dialog thing (very bad IMO). As a first step, I just wanted to get rid of all GUI oriented methods in the core. Now that the LyXView interface is lean and mean we can transfer back some things to the core if it make sense, on a case by case basis.

I'll do the cleanup as you suggested.


Reply via email to