Commit Graph

15512 Commits

Author SHA1 Message Date
Nathan Sobo
43386b0483 Always update twice assuming we may need to measure
This prepares the ground for measuring absoltue cursor positions.
2017-05-05 09:29:27 +02:00
Nathan Sobo
583c2c537d Iron out scheduling issues
* Ensure multiple calls to scheduleUpdate only result in a single call
to updateSync in the future.
* Explicit calls to update sync after scheduling an update fulfill the
scheduled update.
* Track whether we think the editor is visible or not to avoid redundant
didShow calls.
* Ensure we only update on resize events if the editor actually changed
size.
2017-05-05 09:29:27 +02:00
Nathan Sobo
19d1d148eb Measure the longest visible screen line on initial render 2017-05-05 09:29:27 +02:00
Nathan Sobo
ede5d5e5f4 Add coverage for gutter measurement and horizontal translation on scroll 2017-05-05 09:29:27 +02:00
Nathan Sobo
b863790390 Start on new TextEditorComponent specs; avoid excessive line numbers 2017-05-05 09:29:27 +02:00
Nathan Sobo
9765d9dbcd Translate gutter so it remains visible when scrolling to the right
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2017-05-05 09:29:27 +02:00
Nathan Sobo
d2d560eac6 Render character measurement line via virtual DOM
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2017-05-05 09:29:27 +02:00
Nathan Sobo
b38fafc83a Absolutely position line number tiles
Static positioning doesn’t seem to improve layout performance
2017-05-05 09:29:27 +02:00
Nathan Sobo
aed4d8876f Use contain: strict on line number gutter and its tiles
This improves layout time of scrolling by limiting the extent of gutter re-layouts.

Signed-off-by: Antonio Scandurra <as-cii@github.com>
2017-05-05 09:29:27 +02:00
Nathan Sobo
f94144ff4b WIP 2017-05-05 09:29:27 +02:00
Nathan Sobo
f237d70357 WIP 2017-05-05 09:29:27 +02:00
Nathan Sobo
1f068bde62 Enable experimental web platform features
This will facilitate #13880
2017-05-03 14:21:24 +02:00
Antonio Scandurra
d9004769e0 Disable auxclick 2017-05-03 14:21:24 +02:00
Nathan Sobo
c28685c816 Don't use --eval when forking child process in Task
There seems to be an Electron bug or something where the child process
isn't receiving messages when --eval is used. It isn't necessary anyway
if we we convert task-bootstrap.coffee to vanilla JS.
2017-05-03 14:21:24 +02:00
Nathan Sobo
06774dbff8 Call compiled functions with Buffer for Electron 1.6 compatibility 2017-05-03 14:21:24 +02:00
Nathan Sobo
b6e3806e77 Instantiate elementResizeDetector instances lazily
This avoids references to browser globals during snapshot creation.
2017-05-03 14:21:24 +02:00
Nathan Sobo
a723614750 Fix lint error 2017-05-03 14:21:24 +02:00
Nathan Sobo
a0c84d592a Remove ViewRegistry.pollDocument
Supporting it via mutation observers has a bad impact on frame rate.
2017-05-03 14:21:24 +02:00
Nathan Sobo
bbbb629f70 Eliminate polling of overlay decoration dimensions
And remove pollDOM method entirely.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Nathan Sobo
549bce5637 Replace sampleBackgroundColors with background-color: inherit in CSS
Previously, the shadow boundary made this impossible, but the new CSS is
way simpler than the JS we’re replacing and removes another dependency
on DOM polling.
2017-05-03 14:21:24 +02:00
Nathan Sobo
8bb3ec1563 Synchronously sample font styling when global editor stylesheet changes
And don’t sample font styling in pollDOM, which we are aiming to
eliminate.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Nathan Sobo
0560ce7f18 Use window resize events to trigger measureWindowSize
Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Nathan Sobo
0d8101b6c3 Synchronously call becameVisible if editor is visible when attached
Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Nathan Sobo
cc4c437f3d Ensure 0-height editors are correctly detected as visible
This is unlikely but it’s easy enough to support

Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Nathan Sobo
25db2bad04 Null guard destruction of intersection observer 2017-05-03 14:21:24 +02:00
Nathan Sobo
39ac7d99b9 Detect text editor resize via scroll event hack
This avoids needing to poll to detect resizes.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Nathan Sobo
1d8b9b84d1 Use IntersectionObserver to detect when editor becomes visible
This is an alternative to relying on pollDOM to detect when the editor
becomes visible. Our goal is to remove pollDOM in the next few commits.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2017-05-03 14:21:24 +02:00
Wliu
d5c13d15bf setZoomLevelLimits -> setVisualZoomLevelLimits 2017-05-03 14:21:23 +02:00
Wliu
dfa3ab1c6e process.versions.atom-shell -> process.versions.electron 2017-05-03 14:21:23 +02:00
Wliu
38c0f7b036 autoSubmit -> uploadToServer 2017-05-03 14:21:23 +02:00
Wliu
c005f7564a Remove unneeded backgroundColor 2017-05-03 14:21:23 +02:00
Michelle Tilley
107e830508 Merge pull request #14309 from atom/mkt-allow-tooltips-to-recalculate-their-positions
Recalculate Tooltip positions when their contents change
2017-04-30 08:38:58 -07:00
hansonw
b5eca7c429 Call PackageManager.initialize from URL handler 2017-04-28 13:22:23 -04:00
Michelle Tilley
63920c2a78 🎨 2017-04-26 19:27:23 -07:00
Michelle Tilley
ca9054a4f8 👕 Fix linting errors 2017-04-26 16:01:43 -07:00
Michelle Tilley
dc6988c945 Reposition Tooltips when they mutate 2017-04-26 15:49:01 -07:00
Michelle Tilley
d56c1e292e Add Tooltip#recalculatePosition which resets the tooltip's position 2017-04-26 15:48:22 -07:00
Max Brunsfeld
fb42ad36f0 Fix bundled package path check to use path, not name 2017-04-21 09:41:35 -07:00
Damien Guard
601aa59e7b Do not treat packages in unusual locations as bundled despite name 2017-04-20 14:44:49 -07:00
Max Brunsfeld
643ba6e086 📝 Add types in Pane.destroyItem docs 2017-04-18 09:51:48 -07:00
Max Brunsfeld
52195e79ff Merge branch 'master' into fb-mdt-no-cmd-w-on-permanent-dock-items 2017-04-17 13:39:16 -07:00
Max Brunsfeld
0015e026a2 Add Workspace.paneContainerForItem method 2017-04-17 11:34:45 -07:00
Matthew Dapena-Tretter
a4c06c039d Add a way to force a pane to destroy its item
When cleaning up after a package that provides a permanent dock item,
you want to be able to destroy it easily. This provides API for doing
so.
2017-04-15 13:28:30 -07:00
Matthew Dapena-Tretter
a9d0618e88 Don't close permanent dock items 2017-04-15 13:09:08 -07:00
Matthew Dapena-Tretter
d40a14be29 Add tests for dock sizing behavior 2017-04-15 11:50:41 -07:00
Matthew Dapena-Tretter
f6b20cd31c Reduce dock initial size lookups
Previously, we would get the initial size every time we didn't have an
explicit one. With this commit, we only get the initial size when we
deserialize and when we go from 0 -> 1 pane items.

Also, if the dock doesn't already have an explicit size, we'll use the
preferred size of the item being dragged when peaking the dock. That
way, dropping it won't cause it to change size.
2017-04-15 11:50:19 -07:00
Matthew Dapena-Tretter
abd8f2c0b7 🐛 Fix URI resolution in openSync()
@Alhadis noticed I missed this in 53ec839.
2017-04-13 23:44:47 -07:00
Matthew Dapena-Tretter
915931dddd 🐛 Make sure docks affordance can always be revealed 2017-04-13 15:52:05 -07:00
Michelle Tilley
56e6048bfc Merge pull request #14146 from atom/mkt-as-improve-snapshotting
Improve snapshotting
2017-04-13 10:12:59 -07:00
Antonio Scandurra
b8e6689abf Merge pull request #14178 from atom/fb-mdt-resize-handle-shouldnt-cover-center
Prevent the resize handle from covering the center
2017-04-13 18:17:09 +02:00