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
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.