Pavel Sanda wrote:
hi,

in short the problem is that at the end of lyxfunc dispatch we firstly
processUpdateFlags and after we do restartCursor() which in turn updates
toolbar, which toggling-on hides the cursor. moving processUpdateFlags after
restartCursor leads to crashes.

the following patch is a workaround for the bug, so that processUpdateFlags is
called once more after this. it cant be used as an fix, because it will slow
down the editation. moreover it does not fixes the logic...
i can devise some ugly patch which triggers processUpdateFlags only when
toolbar toggling is detected, but beforehand i would like to ask whether
there is some better idea what to do -- Abdel?

Yes, the last idea is on the right track. There's a fundamental issue here: a toolbar popup should trigger a work area resize event, and after that a call to BufferView::showCursor() should scroll down the work area enough to show the cursor if needed.
So, there are two things to verify:

1) that a resize event is triggered in GuiWorkArea
2) that the BufferView is properly scrolled if needed after the toolbar toggling.

Hope that it can help you fix the problem. I won't promise to have look because I failed to honour my previous promises :-(

Abdel.

Reply via email to