Robert,
I accept the history but much of the rest is just semantics.
In any case - I'm NOT proposing that the current 'toggle' capability be removed. Quite the contrary.
I AM proposing that given you added (DataInsert) as an 'afterthought' and given that it performs differently from normal insert, it IS effectively a third mode.
It doesn't matter if you're a default=OVR or default=INS user, you have the ability to use THREE keyboard modes.
The way it is currently implemented, you can switch from 'default' to one "mode 1" with one key stroke and you can switch from 'default' to the "mode-2" mode with one keystroke.
You can also switch from either "non-default" insert" mode back to 'default' with one key-stroke.
BUT you CANNOT switch from 'mode 1 to 'mode 2' or vica versa in one key-stroke.
I see no reason for that limitation, and definitively no reason for things going awry when you do so as those of us who use both will instinctively do.
The dummy code I proposed keeps the status quo where each insert key will toggle its respective mode ON/OFF, just like before.
But is also allows users to switch between insert modes with the same key stroke they would use if they were in default mode.
The biggest advantage is predictability. The user gets the mode s/he requested with the key, unless that mode is already in effect when the user, presumably wishing to toggle, get the toggle effect.
To my mind that is an ENHANCEMENT. User's need not re-learn anything. They can stick with what they already do.
Out of the box, SPFLIte does not map (DataInsert) to any key.
Users who take that step because they want that functionality should not be penalised by having to press one key some of the time, and two different keys at other times to invoke the desired mode.
With respect - the current beta does NOT do what the doc says. It actually gets very messy in use.
I doesn't matter that you initially coined (DataInsert) as just another 'flavour' of the existing INSERT mode.
The current approach treats both insert modes (which have different effects on what the keyboard does) as if they were the same thing.
I note that, given a default of INS, this sequence (which ala documentation should toggle (DataInsert) back to default)
(Insert)... (DataInsert)... (DataInsert)...
toggles endlessly between INS and D-INS, another thing the documentation doesn't say.
Neither does it say that the above sequence when followed by (Insert) gives me OVR (still not default) and only when/if followed by another (Insert) returns me to the default of INS.
I call that utterly unpredictable.
Toggle means "hit the same key again to turn off the effect". in the key sequence
(Insert), then (DataInsert), then (Insert)
the last (Insert) should NOT "toggle" anything. The initial (Insert) has already been usurped by (DataInsert) and is no longer in effect!
You are treating the (DataInsert) key as if it were just another alphanumeric key and, once pressed, the initial (Insert) key overrides all else until the next <ENTER> event.