Commit Graph

32898 Commits

Author SHA1 Message Date
Will Binns-Smith
7da76ec50d Remove semicolons :'( 2017-08-22 23:10:14 -07:00
Will Binns-Smith
0916b4c4f0 Manage focus for modal panels
This implements automatic focus management for modal panels using the
excellent focus-trap module.

Upon being shown, modals will have their first tabbable element
automatically focused, and shifting focus with the tab key (or more
correctly the core:focus-next command) will be limited to the contents
of the modal. If the modal does not have any tabbable elements, focus()
will be sent to the panel's root element (if it implements it).

I'm happy to update this to *always* calls focus on the panel's root
element, but then modal implementers would need to handle that and
focus things on their own. I'd argue the tabbable element behavior
is more accessible though :)

This has the effect of not automatically closing most of Atom's own
modals whenever the tab key is pressed, which was an odd nonstandard
behavior, IMO.

This also automates returning focus to the element that had focus before
the modal was shown, something up until now had to be implemented in
every modal in Atom.

This likely breaks a few contracts for existing Atom packages that
create modals, but I've found this doesn't conflict behaviorally with
well-behaved modals like the command palette which implement their own
focus management (which can be removed if this lands).

Released under CC0.
2017-08-22 23:09:44 -07:00
Nathan Sobo
4968a21b82 ⬆️ etch 2017-08-22 18:09:26 -06:00
Max Brunsfeld
0e50404cfb Merge pull request #15414 from atom/mb-fix-stopped-changing-event-error
Fix errors with stopped-changing event when buffer is modified in an event listener
2017-08-22 16:57:58 -07:00
Max Brunsfeld
c62d7dcee5 ⬆️ text-buffer 2017-08-22 16:57:13 -07:00
Ash Wilson
9299c57ec6 Merge pull request #15413 from atom/aw-project-doc
Documentation fix
2017-08-22 19:21:47 -04:00
Ash Wilson
22336fcb4d Documentation fix
It's `action`, not `type`.
2017-08-22 18:16:16 -04:00
Nathan Sobo
a1fdf52eda Merge pull request #15407 from atom/as-fix-typing-while-holding-left-mouse-button
Don't select when typing while also holding the left mouse button
2017-08-22 11:47:17 -06:00
Damien Guard
abba8bff68 Include new language-typescript grammar 2017-08-22 09:47:02 -07:00
Antonio Scandurra
e6b84dbb44 Test handleMouseDragUntilMouseUp 2017-08-22 14:38:05 +02:00
Antonio Scandurra
0372db43bb Don't select when typing while also holding the left mouse button 2017-08-22 12:04:52 +02:00
Max Brunsfeld
411d878b36 ⬆️ fs-admin 2017-08-21 22:47:07 -07:00
Max Brunsfeld
337b7da4fe ⬆️ text-buffer 2017-08-21 22:27:14 -07:00
Max Brunsfeld
d3a8fe693b ⬆️ text-buffer 2017-08-21 15:58:54 -07:00
Max Brunsfeld
c823a5c6b5 ⬆️ text-buffer 2017-08-21 14:57:08 -07:00
Max Brunsfeld
3d8f0e2406 ⬆️ text-buffer 2017-08-21 14:30:02 -07:00
Nathan Sobo
5eae5ed5eb Merge pull request #15392 from atom/fb-wb-standard-env
Use standard (eslint's) 'env' field over globals
2017-08-21 09:38:34 -06:00
Nathan Sobo
08f36de7ec Merge pull request #15394 from atom/fb-wb-command-registry-js
Convert CommandRegistry to JavaScript
2017-08-21 09:35:31 -06:00
Antonio Scandurra
bda74623ec ⬆️ tabs 2017-08-21 10:46:30 +02:00
Antonio Scandurra
66e576f6e3 Merge pull request #15378 from atom/as-fix-cropped-fonts
Drop use of GPU tiles for lines and line numbers
2017-08-21 10:44:58 +02:00
Antonio Scandurra
a8594bceb9 Merge pull request #15384 from atom/ns-fix-highlight-end
Fix highlight end pixel position calculation
2017-08-21 10:44:18 +02:00
Antonio Scandurra
2f46b8e00e Put back mistakenly deleted line 2017-08-21 09:53:54 +02:00
Will Binns-Smith
ac32ffb155 Convert CommandRegistry to JavaScript
This was bootstrapped with running `decaffeinate` on both command-registry
and its spec, but involved a line-by-line eyeing and updating for idioms
and, in one case, correctness:

For some reason, copying the keys to the new dispatchedEvent in
coffeescript (command-registry.coffee:235) currently does not result in a thrown
exception, as it should when trying to write over the read-only property
`isTrusted`, so I added a check to ensure that the key did not already
exist in the new event. Moreover, other definitions of `preventDefault`,
`stopPropagation` and friends, which are also enumerable afaict, would
also overwrite the ones defined just prior (command-registry.coffee:220
and command-registry.js:325), so that check ensures we don't overwrite
those either.

Test plan: `./script/lint && ./script/test`, and a lengthy smoke test of
various commands through keybindings, command palette, and package
interfaces.

Released under CC0.
2017-08-20 20:52:43 -07:00
Will Binns-Smith
882a1924f0 Remove one-off eslint global pragmas in favor of envs 2017-08-20 19:55:00 -07:00
Will Binns-Smith
bf00166d0e Use standard (eslint's) 'env' field over globals
Test Plan: ensure every removed global is a part of an added `env` from https://github.com/sindresorhus/globals/blob/master/globals.json

run `./script/lint`
2017-08-20 19:29:10 -07:00
Nathan Sobo
3d0d1ae44e Prevent block decoration margins from collapsing during measurement
We now render a 1px high sentinel element between off-screen block
decorations before measuring them to prevent margins from collapsing.
2017-08-20 08:23:41 -06:00
Nathan Sobo
835ed10f7c Handle highlight end rows with 'before' blocks in addition to 'after' 2017-08-20 07:32:44 -06:00
Nathan Sobo
f33051da33 Fix highlight end pixel position calculation
Previously, we were calculating the position preceding block decorations
for the row following the end of the highlighted range, but that's
actually wrong. We just want the position following block decorations of
the end of the highlighted range, plus one line height. This prevents us
from incorrectly rendering the end of highlight after block decorations
that immediately follow the end of the highlighted range.
2017-08-20 07:00:50 -06:00
Nathan Sobo
be3dbab491 Merge pull request #15389 from atom/as-fix-block-decorations-margin-top-calculation
Fix line number position when block decorations are at tile boundaries
2017-08-20 07:00:18 -06:00
Antonio Scandurra
e2ef250fb1 🎨 2017-08-20 10:05:22 +02:00
Nathan Sobo
0bfa019b2d Merge pull request #15329 from atom/bu-arrow-up-ac-plus
⬆️ autocomplete-plus
2017-08-19 12:38:21 -06:00
Nathan Sobo
6c4e284c2c ⬆️ autocomplete-snippets 2017-08-19 12:00:02 -06:00
Antonio Scandurra
effc6d9d21 Fix line number position when block decorations are at tile boundaries
When there are block decorations, we compute a `marginTop` style for
line numbers, so that they can be aligned correctly to the corresponding
line nodes.

This commit fixes a regression in the logic that calculated the
`marginTop` value, which was failing to correctly render line numbers
when block decorations were located right before the end of a tile, or
exactly at
the beginning of it.
2017-08-19 15:40:32 +02:00
Nathan Sobo
16bb2ab8a8 ⬆️ find-and-replace 2017-08-18 21:33:07 -06:00
Max Brunsfeld
d7d3f5976c ⬆️ text-buffer 2017-08-18 14:15:46 -07:00
Max Brunsfeld
78cd383e95 ⬆️ pathwatcher and dependent packages 2017-08-18 12:57:03 -07:00
Ash Wilson
962bbd509a Merge pull request #15377 from atom/aw-async-watchpath
Async watchPath method
2017-08-18 15:51:44 -04:00
Ash Wilson
d03e5d9d54 Update documentation references 2017-08-18 15:02:34 -04:00
Ash Wilson
4c2d44059c ⬆️ github 2017-08-18 15:01:21 -04:00
Antonio Scandurra
7267c5d269 Drop use of GPU tiles for lines and line numbers
At the cost of a very minimal reduction in layout performance, we gain
reliable rendering at all line heights and don't have to worry about
characters that extend above/below the footprint of a line.

Signed-off-by: Nathan Sobo <nathan@github.com>
2017-08-18 15:56:54 +02:00
Ash Wilson
ea128849da 👕 2017-08-18 09:48:53 -04:00
Ash Wilson
e7fcb0d079 Adjust Project root directory watching to account for async watchers 2017-08-18 09:10:20 -04:00
Ash Wilson
e2c9cc1692 Private diagnostic method to dump the active watchers 2017-08-18 09:08:34 -04:00
Nathan Sobo
44f3cf73ea Merge pull request #15374 from atom/ku-save-as-default-dir
Don't assign default path for `showSaveDialog` unless it exists
2017-08-18 06:58:29 -06:00
Ash Wilson
a0bdc50535 Return a Promise from watchPath 2017-08-17 22:48:03 -04:00
Ash Wilson
fb5f197ae7 Protect against stale NativeWatcher events 2017-08-17 22:47:39 -04:00
Ash Wilson
aa26eba678 Jasmine, not Mocha 2017-08-17 22:01:25 -04:00
Ash Wilson
6ffb3f3ff2 Test first 2017-08-17 21:59:32 -04:00
Nathan Sobo
f41be89d5e Merge pull request #15372 from atom/as-ns-fractional-pixel-ratio-support
Always round GPU layer dimensions to physical pixel boundaries
2017-08-17 17:13:52 -06:00
Damien Guard
a533680fa0 Exclude x86/TEST from build matrix on appveyor for speed 2017-08-17 14:23:18 -07:00