Nathan Sobo
5481b37d01
Merge pull request #2735 from atom/ns-react-precompute-pixel-rects
...
Compute pixel rects of cursors and highlights in EditorComponent
2014-06-24 13:34:56 -06:00
Nathan Sobo
b127155805
Only pause cursor blink when cursors actually move
...
Not when they are just repositioned due to lineHeight/charWidth changes
2014-06-24 13:26:21 -06:00
Nathan Sobo
74dbfbc956
Add HighlightComponent::shouldComponentUpdate
2014-06-24 13:04:48 -06:00
Nathan Sobo
f41a9739ac
💄
2014-06-24 13:02:41 -06:00
Nathan Sobo
b75e748ec5
Restore pausing of cursor blink on cursor movement
2014-06-24 12:59:13 -06:00
Nathan Sobo
3f9fdad478
Precompute pixel rects for highlight decorations in EditorComponent
2014-06-24 12:56:52 -06:00
Nathan Sobo
0150b40376
Implement CursorComponent::shouldComponentUpdate
...
This prevents re-rendering cursors on blink, since only the class on
the outer component changes.
2014-06-24 12:42:58 -06:00
Nathan Sobo
d3e6bd038f
Precompute cursor pixel rects in EditorComponent and pass them down
2014-06-24 12:40:56 -06:00
Ben Ogle
b7d8e581ee
Merge pull request #2727 from atom/bo-subscribe-to-marker-changes
...
Subscribe to marker changes
2014-06-24 11:15:47 -07:00
Kevin Sawicki
1c2e997415
Merge pull request #2700 from atom/bo-grammar-preload
...
Preload grammars on deserialization
2014-06-24 08:26:57 -07:00
Ben Ogle
9b577ecbf8
Make lines 100% of the width of their container
...
This is part of the solution to #2701 . Lines need to be 100% wide in
case a class styles their background.
2014-06-23 22:46:27 -06:00
Ben Ogle
d57119793b
Properly disable nextTick when calling requestAnimationFrame
...
My previous commit was nonsense because it set the ::performSyncUpdates
flag back to false before the animation frame callback ever got fired.
/cc again @benogle
2014-06-23 22:35:40 -06:00
Ben Ogle
1d9514ca81
Don't call nextTick within requestAnimationFrame
...
This seems to be causing stutter when scrolling on the GPU. When I don't
use nextTick when requesting animation frames, the problem seems to go
away. Maybe there's some issue with the integration between the Node
and Chromium event loops plus sending things to the compositor.
/cc @benogle
2014-06-23 22:21:28 -06:00
Ben Ogle
5ebb17c2e8
Be defensive when iterating through decorations
2014-06-23 18:03:19 -07:00
Kevin Sawicki
f741b1d6a6
Store timings for deserializing project and workspace
2014-06-23 17:46:44 -07:00
Ben Ogle
36280bb3a7
Add noop for resetDisplay
...
fixes #2674
2014-06-23 17:46:35 -07:00
Kevin Sawicki
15ccfac75a
💄
2014-06-23 17:46:31 -07:00
Kevin Sawicki
5529f13cc6
Only create grammar load promise once
2014-06-23 17:33:05 -07:00
Kevin Sawicki
0a54233ef0
Merge branch 'master' into bo-grammar-preload
2014-06-23 17:05:48 -07:00
Ben Ogle
b4f4ef8ec4
💄
...
Make it not suck.
2014-06-23 17:04:32 -07:00
Kevin Sawicki
e11785ce98
Serialize packages names in Workspace
2014-06-23 16:56:46 -07:00
Kevin Sawicki
becdca0858
Store grammars in Atom::unloadEditorWindow
2014-06-23 16:30:02 -07:00
Kevin Sawicki
c9e3ca3d69
Remove logging
2014-06-23 16:23:07 -07:00
Kevin Sawicki
6336ffbf44
Store included grammar scopes
2014-06-23 16:22:37 -07:00
Kevin Sawicki
6aeca79d1b
Return empty promise when already loaded
2014-06-23 16:13:13 -07:00
Kevin Sawicki
e76b24f8ad
Catch error
2014-06-23 16:04:25 -07:00
Kevin Sawicki
0304f187dd
Remove preload request from deserializeParams
2014-06-23 16:03:56 -07:00
Kevin Sawicki
968ab0e41d
Remove unused methods
2014-06-23 16:02:45 -07:00
Kevin Sawicki
ea6feddd7b
Track duration of grammar preload
2014-06-23 16:00:58 -07:00
Ben Ogle
f381abcbad
Re-render when a marker changes
...
fixes #2705
2014-06-23 16:00:36 -07:00
Kevin Sawicki
bb5d628397
Track packages to preload in Atom class
2014-06-23 15:59:26 -07:00
Kevin Sawicki
f3d87b1653
Set packageName property on Grammar objects
2014-06-23 15:58:06 -07:00
Ben Ogle & Nathan Sobo
76a911f17a
Render highlights immediately to support underlayer shim
2014-06-23 16:23:45 -06:00
Ben Ogle
7139fd9f98
Conditionally render the gutter for the showLineNumbers option
...
Fixes #2707
2014-06-23 15:22:16 -07:00
Kevin Sawicki
64e2b53baa
Add cursor with ctrl-click on Windows/Linux
...
Closes #2105
2014-06-23 14:43:00 -07:00
probablycorey
6e102c7e1e
Rename regex var to a more appropriate name
2014-06-23 10:51:58 -07:00
Nathan Sobo
b9a3eca091
Correcly handle folds that end where other folds begin
...
Fixes #2247
2014-06-23 11:29:14 -06:00
Nathan Sobo
3fd4e57162
Render a dummy highlight decoration to prevent artifacts
...
When the last highlight gets removed, we get a rendering artifact.
Always rendering an empty dummy at 0,0 ensures that never happens.
2014-06-21 02:23:59 -06:00
Nathan Sobo
7c356d2592
Revert "Render highlights on their own layer to avoid GPU artifacts"
2014-06-21 01:58:11 -06:00
Ben Ogle
0dadce1047
Serialize all included grammar scopes
2014-06-20 17:04:21 -07:00
Ben Ogle
8c3bfaa3a2
Return when grammars are already loaded
2014-06-20 17:04:21 -07:00
Ben Ogle
f8b8b22b75
Preload grammars on deserialization
2014-06-20 17:04:21 -07:00
Nathan Sobo
e49414d2ec
Merge pull request #2699 from atom/ns-react-fix-artifacts
...
Render highlights on their own layer to avoid GPU artifacts
2014-06-20 17:03:26 -06:00
Nathan Sobo
e084bebb54
Autoscroll to selections in model layer when added
...
Fixes #2698
2014-06-20 16:53:46 -06:00
Nathan Sobo
df8d014e3c
Add a dedicated underlayer to avoid GPU artifacts on wrap guide etc
...
Trying to make the .highlights layer double as the .underlayer was
causing GPU artifacts on the wrap guide when the last highlight was
removed. This puts it in its own layer to avoid that.
2014-06-20 16:33:08 -06:00
Nathan Sobo
d839ea9aa5
Don't render an opaque background behind line numbers
...
It doesn't help subpixel anti-aliasing like I thought, so screw it.
2014-06-20 16:07:19 -06:00
Nathan Sobo
4218e0a037
Render highlights on their own layer to avoid GPU artifacts
...
Previously, when the last highlight div was removed from the lines
layer, chunks of the lines would sometimes disappear. Since we've
discovered that giving the lines an opaque background doesn't help with
subpixel anti-aliasing anyway, I've found that rendering highlights on
their own layer behind the lines and making the lines layer transparent
avoids the arficacts.
2014-06-20 15:18:19 -06:00
Nathan Sobo
ef2bdf6365
Only forceUpdate of EditorComponent on nextTick if it's mounted
2014-06-20 15:06:16 -06:00
Nathan Sobo
ef1ec9b693
Emit events *after* update to prevent requesting update during an update
...
When updating synchronously in specs, we can't get away with requesting
an update before the previous update is completed. If we emit events
before the update, we have the potential for one of those events to
cause this to happen. Moving them to after is more correct anyway.
2014-06-20 15:06:16 -06:00
Nathan Sobo
68d0a99c6e
Default EditorComponent to updating synchronously in specs
...
This commit adds a static property, EditorComponent.performSyncUpdates,
which can be used to control the update behavior of all editor
components. In addition, an instance property called performSyncUpdates
be assigned to control the update behavior of a specific instance.
2014-06-20 15:06:16 -06:00