Andre Poenitz wrote: Woo! Things move on bloody quickly!
I find it frankly amazing that the LCursor class shrinks to almost nothing. I even feel I understand how it works which is just gob-smacking! Index: cursor.h + /// mainly used as stack, but wee need random access Swap wee for we. Index: lyxfunc.C - FuncRequest cmd(view(), LFUN_INSET_EDIT, "left"); - par.inset()->dispatch(cmd); + par.inset()->edit(view(), true); I don't really see why you are introducing a new function here. Why can't this be handled by the dispatch machinery? Index: insets/insetbase.C + /// cursor enters + virtual void edit(BufferView * bv, bool left); Shouldn't we really use the concept of 'front' and 'back' here, rather than 'left' and 'right'? I'm thinking the current notation sits uncomfortably with the RtL stuff. also, why not introduce a new enum EnterInset {FRONT, BACK}; It will be more readable to have cursor.pos())->edit(bv(), FRONT; don't you think? Index: text3.C + inset->edit(bv, true); + bv->cursor().push(inset, inset->getText(0)); Very nice! Index: insets/insetbibitem.C - case LFUN_INSET_EDIT: + case LFUN_MOUSE_PRESS: PRESS or RELEASE? Honestly, I don't know. I do see, however, that the graphics inset acts on MOUSE_RELEASE. Index: insets/insetcite.C - case LFUN_INSET_EDIT: - InsetCommandMailer("citation", *this).showDialog(cmd.view()); + + case LFUN_MOUSE_PRESS: + InsetCommandMailer("bibitem", *this).showDialog(cmd.view()); I don't think I want to open the "bibitem" dialog here ;-) -- Angus