This brings tabulars back from zombie state to 'staggering zombie' state. Left/Right should work, even (partially) with selection, up/down crashes (most of the time...)
This also changes the signature of the InsetFoo::priv_dispatch functions. By assuming a 'default return' of 'DispatchResult(true, true)' quite a bit of clutter is removed from the funcition. [Lots of 'return DispatchResult(true, true)' simply become 'break;'] Only InsetBase::priv_dispatch() and some 'semi-handled' events will need to notify the dispatch mechanism that something was _not_ handled. [In fact, I'd think most of the semi-handled stuff is currently handled wrong. Look at InsetLabel, LFUN_INSET_MODIFY: case LFUN_INSET_MODIFY: { InsetCommandParams p; InsetCommandMailer::string2params("label", cmd.argument, p); if (p.getCmdName().empty()) { // why should we act differently on empty labels? *** cur.notdispatched(); break; } if (p.getContents() != params().getContents()) changeRefsIfUnique(cur.bv(), params().getContents(), p.getContents()); setParams(p); Reason for 'streamlining' priv_dispatch is to move the math specific idxLeft/Up/Down etc from LCursor to 'proper' LFUN handling in the individual math insets (currently, MathNestInset catches all cursor movement and diverts them to LCursor math specific code. No good IU...] Andre'
1.diff.gz
Description: application/gunzip