Previously, we used to prevent the user from dragging the selection
further when the buffer was about to change. This was problematic
because any change in the buffer, even one that was performed
"automatically" by a package, would cancel the dragging action and
result in a confusing experience for the user.
On the other hand, we want to prevent users from accidentally selecting
text when they perform an edit (see #15217, #15405).
This commit addresses both concerns by canceling the dragging as soon as
the user interacts with the keyboard, instead of canceling the dragging
when the buffer is about to change.
One downside of this approach is that it changes the behavior of
pressing a keystroke that does not result in a buffer change, e.g.
Shift, Arrow Keys, etc.
Signed-off-by: Jason Rudolph <jasonrudolph@github.com>
The Flight Manual contains more accurate instructions for local development on official Atom packages. I was caught out by this (as you can see in https://github.com/atom/bracket-matcher/issues/306) so I'm changing it for future contributors. 😊 I think it's better to just link to the Flight Manual rather than maintaining the instructions in two places.
By having an $ATOM_HOME-dependent part in the socket name, Atom
instances that have different homes will run in independent processes.
Fixes the current behaviour where starting Atom with a new $ATOM_HOME
"opens" an Atom window with settings and packages from the original
$ATOM_HOME. Useful for IDEs.
`this.rootDirectories` is an Array of Directory objects. `path` is a
String. Therefore, `this.rootDirectories.includes(path)` will always
evaluate to `false`. We instead need to look for an entry in
`this.rootDirectories` where the Directory object's path is equal to the
given path.