Commit Graph

32789 Commits

Author SHA1 Message Date
Antonio Scandurra
e980598aba Honor editor's scrollSensitivity parameter 2017-08-15 12:22:59 +02:00
Antonio Scandurra
756dad67d8 ⬆️ symbols-view 2017-08-15 11:25:23 +02:00
Antonio Scandurra
2cd107a4e8 Merge pull request #14682 from atom/bring-back-asar
Bring back ASAR archives
2017-08-15 10:43:29 +02:00
Antonio Scandurra
84673775af Merge branch 'master' into bring-back-asar 2017-08-15 10:03:27 +02:00
Nathan Sobo
708c9b4e22 ⬆️ text-buffer
Fixes #15190
2017-08-14 15:36:03 -06:00
Nathan Sobo
2fc2c9caa7 Merge pull request #15302 from atom/ns-as-always-render-input
Always render hidden input
2017-08-14 15:34:45 -06:00
Nathan Sobo
433c514673 Always render hidden input
This avoids mysterious timing issues in which the editor gets a 'focus'
event in a state where `isVisible` returns false. If we always render
the hidden input, we can always focus it.

Signed-off-by: Antonio Scandurra <as-cii@github.com>
2017-08-14 11:53:02 -06:00
Nathan Sobo
2f2d62ca51 Merge pull request #15296 from atom/as-fix-cancel-dialog-on-quit-or-restart
Prompt user only once when quitting/restarting and canceling save dialog
2017-08-14 09:04:04 -06:00
Nathan Sobo
2d6b9e2606 Merge pull request #15299 from atom/as-do-nothing-when-clicking-on-block-decorations
Ignore clicks on block decorations
2017-08-14 08:59:27 -06:00
Antonio Scandurra
eb1eeb3fde Ignore clicks on block decorations
Previously, clicking on a block decoration to interact with it would
cause the editor to scroll to the line next to it. This is inconvenient,
especially if the decoration was designed to be interactive and
contained buttons or links. If the decoration was close to the bottom of
the screen, clicking on a button inside of it would make the editor
scroll down and abort the click.

This behavior regressed during the editor rendering layer rewrite and
with this commit we are restoring the original behavior by simply
ignoring clicks that land on block decorations.
2017-08-14 15:43:48 +02:00
Antonio Scandurra
e50a73b033 Fix tests 2017-08-14 12:28:19 +02:00
Antonio Scandurra
91b7c14281 Prompt user only once when quitting/restarting and canceling save dialog
I think this slipped through during the refactoring performed in
dc32018. With this commit we are fixing the regression and adding a new
main process regression test to exercise this behavior.
2017-08-14 12:21:19 +02:00
Nathan Sobo
44441b14c3 Merge pull request #15285 from atom/ns-ime-workaround-2
Fix IME composition preview for new editors
2017-08-13 15:09:08 -06:00
Nathan Sobo
38978da0fa Explicitly compare compositionCheckpoint against null, since it can be 0 2017-08-13 14:03:58 -06:00
Nathan Sobo
f82ff9c0d1 ⬆️ language-css 2017-08-12 18:09:22 -06:00
Nathan Sobo
592d174e3b Merge pull request #15266 from atom/ns-fix-alt-bindings-on-mac
Suppress composition events default prevented on previous keydown
2017-08-12 15:23:33 -06:00
Max Brunsfeld
acc7b97ae0 Merge pull request #15264 from captbaritone/pane-destroy-item
Ensure Pane.destroyItem always returns a promise
2017-08-12 13:04:35 -07:00
Nathan Sobo
744b96df46 Suppress composition events default prevented on previous keydown
This seems like a browser bug.
2017-08-12 13:50:08 -06:00
Nathan Sobo
ff32fd80bf Merge pull request #15273 from atom/as-fix-line-height-0
Don't throw an error when setting an incredibly small `lineHeight`
2017-08-12 13:46:23 -06:00
Nathan Sobo
d8a8b03db2 Merge pull request #15275 from atom/as-fix-scrollbar-cursor
Use default cursor on dummy scrollbars and make them 15px wide/tall
2017-08-12 13:30:41 -06:00
Nathan Sobo
feb0cddf5e Merge pull request #15265 from atom/ns-ime-workaround
Work around incorrect data on `compositionupdate` events in Chrome 56
2017-08-12 13:26:01 -06:00
Nathan Sobo
3c66a1efbd Merge pull request #15270 from atom/as-fix-extra-lines-rendering
Fix measuring lines in presence of pending autoscroll requests
2017-08-12 13:21:59 -06:00
Antonio Scandurra
8cbfcf6e2b Use default cursor on dummy scrollbars and make them 15px wide/tall 2017-08-12 15:56:19 +02:00
Antonio Scandurra
964f209c40 Don't throw an error when setting an incredibly small lineHeight
Instead, if the measured line height equals 0, default it to 1 so that
the editor component doesn't start computing `NaN` or `Infinity` values
due to e.g. dividing by 0.

We should probably consider sanitizing line heights smaller than a
certain threshold, but that's non trivial because line height is
expressed as a multiplier of the font size. Also, users may style the
`line-height` property via CSS, which may still throw errors when using
small values.
2017-08-12 15:38:32 +02:00
Antonio Scandurra
b4f029e9f0 Test both Chrome 56 and other Chrome versions IME behavior 2017-08-12 14:38:18 +02:00
Antonio Scandurra
fc1327eb22 Fix measuring lines in presence of pending autoscroll requests
Calling `pixelPositionForScreenPosition` was sometimes throwing an error
indicating that the requested position was not rendered and that, as
such, could not be measured.

This was caused by trying to measure a line that was visible at the
moment of the call while also having a pending autoscroll request that
would cause that line to go off-screen. Due to how the code was
structured, we would mistakenly detect that line as visible, autoscroll
to a different location, re-render a different region of the buffer and
then try to measure the now invisible line.

This commit fixes this issue by restructuring and simplifying the logic
for rendering extra lines in order to measure them. Now, every line for
which a measurement has been requested is stored in a `linesToMeasure`
map. During the first phase of the update process (after honoring
autoscroll requests), we detect which of these lines are currently
visible and if they're not, store them into the
`extraRenderedScreenLines` map, which is then used to render lines that
are invisible but need to be measured.
2017-08-12 12:31:50 +02:00
Antonio Scandurra
ca183dd693 Don't insert IME preview on next tick if composition has already ended 2017-08-12 10:06:56 +02:00
Damien Guard
3e0d790050 Remove language-typescript deprecation.
New package soon.
2017-08-11 17:01:34 -07:00
Damien Guard
2e048826fb ⬆️ apm 2017-08-11 15:58:55 -07:00
Nathan Sobo
54a6f0d29f Clear hidden input compositionstart on Chrome 56
We use the value of the hidden input to display a preview of the
composition, but it might already contain spaces from previous
keystrokes, since we don't call preventDefault when spaces are inserted.
2017-08-11 15:57:46 -06:00
Nathan Sobo
8667cfdd13 Work around incorrect data on compositionupdate events in Chrome 56 2017-08-11 15:47:37 -06:00
Jordan Eldredge
5a8b197db1 Ensure Pane.destroyItem always returns a promise
Fixes #15157
2017-08-11 13:29:27 -07:00
Linus Eriksson
b14c4a32c9 ⬆️ bracket-matcher@0.87.3 2017-08-11 21:26:31 +02:00
Nathan Sobo
b0622d224e Merge pull request #15244 from atom/ns-rows-per-page
Shim rowsPerPage property on Editor instances
2017-08-11 10:48:44 -06:00
Antonio Scandurra
a7358477d9 Merge pull request #15240 from atom/as-manual-highlight-updates
Create, update and destroy highlights manually
2017-08-11 11:26:15 +02:00
Nathan Sobo
7f8f184e96 Shim rowsPerPage property on Editor instances
Several packages were relying on a raw property rather than the getter
method. This isn't really supported, but may as well keep them working.
2017-08-10 12:55:41 -06:00
Wliu
e2ee2ee79d Merge pull request #15224 from atom/wl-multiline-is-important
Set multiline flags for out-of-Atom regex replacements
2017-08-10 14:15:50 -04:00
Wliu
8963cf4955 Only use multiline if the flag is passed in 2017-08-10 13:24:46 -04:00
Antonio Scandurra
00d27befe8 Create, update and destroy highlights manually
Etch's reconciliation routine causes elements to be sometimes
re-ordered. In order to move an element, however, Etch needs to first
detach it from the DOM and then re-append it at the right location.

This behavior is unacceptable for highlight decorations because it could
re-start CSS animations on a certain highlight decoration when a
completely different one is added or removed.

Even though we are still interested in restructuring etch's
reconciliation logic to prevent unwanted re-orderings, with this commit
we are switching to a custom routine to create/update/remove highlight
decorations that prevents unnecessary moves and, as a result, fixes the
undesired behavior described above.
2017-08-10 17:48:34 +02:00
Jason Rudolph
3967de1be2 Merge pull request #15234 from atom/jr-bring-master-up-to-speed-with-1-20-releases
Bring master up to date with recent changes in 1.20-release branch
2017-08-10 11:41:53 -04:00
Damien Guard
9fb4f0d9cd Create shorter temp path for Squirrel 2017-08-10 08:47:17 -04:00
Wliu
95b216f234 Add multiline spec 2017-08-09 23:15:33 -04:00
Wliu
2fa2feacaf Multiline is important, don't forget to set it 2017-08-09 22:52:39 -04:00
Ash Wilson
e48b980d41 Merge pull request #15208 from atom/aw-appveyor-matrix
Separate tests and installer creation on AppVeyor
2017-08-09 16:45:12 -04:00
Wliu
4876ae07e1 Merge pull request #15214 from atom/wl-update-language-javascript
Update language-javascript
2017-08-09 14:00:42 -04:00
Ash Wilson
ee0df014bc Less variable magic 2017-08-09 13:15:34 -04:00
Ash Wilson
ee12c1c7d2 Why does my brain always edit out the second % 2017-08-09 13:10:26 -04:00
Ash Wilson
0db8c9c3ec Don't build on non-release installer rows either 2017-08-09 13:01:40 -04:00
Wliu
2088143a90 Fix specs 2017-08-09 12:43:35 -04:00
Ash Wilson
4acd52a978 Skip installer build on non-release branches 2017-08-09 12:18:07 -04:00