The real problem is the notifyCursorLeaves is called in a chaotic way. In certain functions like Cursor::popLeft, or the handler for mouse click in the BufferView, this function is called. But of course there can be plenty of way to leave an inset. A clean way would be to remove these calls altogether and instead check if the cursor moved after each lfun. Then all the inset which are not referenced in the cursor anymore should be notified. And the flags should be or'ed to the ones returned from the dispatch handler.

But this of course means that the inset pointers must still be valid in a cursor, even after a dispatch. This means that we need some kind of reference counting in insets. Not a nice thought either.

Stefan

Attachment: PGP.sig
Description: Signierter Teil der Nachricht

Reply via email to