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'

Attachment: 1.diff.gz
Description: application/gunzip

Reply via email to