Allow a class spec when using a node in the plugin config.
Revert the previous change as it's just wrong. A node def means 'insert whatever comes back from the adapter into the doc', so post processing that isn't right. It also doesn't solve the problem at hand. So remove it but leave in the corrected checking.
Initial attempt at fixing a bug on Android Chrome that shows up when an editable is blurred. It looks like in some cases the saved native range is altered and so gets out of sync with the rangy range. In the cases where I've seen this it's the native range that is wrong. The browser seems to be doing odd things like moving the selection on/back a word when the editable is blurred. It definitely looks wrong but it's hard to work out exactly when this happens and why. This fix assumes it only happens on Android Chrome as that's the only place i've seen it happen so far. Feature checking would be better (obviously) but so far I've been unable to reliably produce a test case that always shows the problem.
Add a new example that helped me identify the issue.
Code will be tidied up if more testing shows that this is a useful fix.
Tidy.
Throttle the selection change event handler which greatly improves performance on Android Chrome.
Change the way in which the toolbar's nav and select state is updated. This fixes a bug that became evident when using the nav example's toggle nav and select button. In those cases the toolbar and command state bar didn't have their states updated to reflect the state of the underlying editor.
The main changes are... make the nav module commands return a value, move the publication of the result of the nav commands up into the message adapter (which is where it belongs), change the topic for nav and select, add two new related topics that explicitly set the state (on/off) rather than toggle it, make the UI artifacts (toolbar and command state bar) update in response to the result of the nav and select commands rather than in response to an artificial key publication (command.exec.key) and remove the now unused key publication. Change the nav example to use the new publication.
The way in which the toolbar checkboxes are changed has been altered so that the user action no longer does this but instead they are set in response to the publication made after the command has been executed.
Also some tidying up.
Note that this commit breaks the command status bar checkbox on the toolbar.
Make the status bar indicator on the toolbar work again. Also makes it work in the same way as the changes made to the nav and select so it now supports toggle, on and off publications.
Change the way that the toolbar handles publications received prior to the toolbar being created.
Fix repeat on hold for toolbar buttons. At some point the initial event's target is nulled out. No idea what is doing it but the fix is to clone the event before starting the repeat processing.
Change the repeat thresholds to try to make it perform better on devices. It used to accelerate nicely but not any longer. It's functional as-is (although managing a hold on a touch device is not simple...) but not as slick as it used to be.
Fix event listeners. Still doing a lot of work but it performs better than it did.
Merge branch 'arthur' into philw