This should be set up with the rest of the code that enables tab drag drop, not sandwiched here. It's delegated there, so we don't have to keep adding event listeners or worrying about memory leaks.

House style for Caret is also to use e for events passed into callbacks, as in ActionScript.