Nathan Sobo
66319ca9c0
Merge pull request #2801 from atom/ns-react-fix-jitter
...
Fix jitter in React editor
2014-07-02 10:34:01 -06:00
Nathan Sobo
17fa580ecd
Ignore 'scroll' events when an update is pending
...
This prevents feedback loops where we handle stale 'scroll' events
for scrolls requested in the model layer. It prevents jitter when
autoscrolling with the cursor.
2014-07-02 10:11:35 -06:00
Nathan Sobo
7202f497db
Pause scroll view measurement in requestAnimationFrame helper method
2014-07-02 09:30:44 -06:00
Nathan Sobo
9508909a9f
Don't defer updates with setImmediate in animation frames
...
I previously thought this was okay, but now I'm experiencing jitter when
scrolling with the trackpad when updates are deferred, and the frames
seem jagged. So this commit restores a synchronous approach to display
updates whenever we use animation frames.
2014-07-02 09:26:24 -06:00
Nathan Sobo
e5ab2c6507
Pause scroll view measurement when requesting animation frames
...
We don't want any extra DOM reading that could introduce hitches in
the animation we're running.
2014-07-02 08:47:32 -06:00
Nathan Sobo
8add5ccd7e
Remove unused EditorComponent::componentWillUpdate hook
2014-07-02 08:46:56 -06:00
Ben Ogle
b0031e493e
Merge pull request #2737 from atom/bo-fix-indent-guide
...
Fix indent guide
2014-07-01 13:46:25 -07:00
Nathan Sobo
8b57bb3309
Merge pull request #2789 from atom/ns-react-disable-gpu-option
...
Add editor.gpuDisabled option to prevent React editor from using layers
2014-07-01 12:48:34 -06:00
Nathan Sobo
4efabd2b5e
💄 method name
2014-07-01 12:34:00 -06:00
Nathan Sobo
18d17b55b5
Pass useHardwareAcceleration property down to CursorComponent instances
2014-07-01 12:33:45 -06:00
Nathan Sobo
0edfbaebeb
Rename editor option to useHardwareAcceleration
2014-07-01 12:17:43 -06:00
Nathan Sobo
512d4da587
Add editor.gpuDisabled option to prevent React editor from using layers
...
When gpuDisabled is true, we use `translate` instead of `translate3d`
to position various elements, preventing the creation of GPU layers.
2014-07-01 11:56:05 -06:00
Ben Ogle & Nathan Sobo
4642d96f39
Tokenize empty lines with a changed indent level synchronously
2014-07-01 10:54:37 -07:00
Ben Ogle
de2930fe99
💄
2014-07-01 10:54:37 -07:00
Ben Ogle
43e88f6515
Invalidate whitespace lines when their indent level changes
...
Refs #2376
2014-07-01 10:54:36 -07:00
Ben Ogle
d97eacc2f9
Add isOnlyWhitespace()
2014-07-01 10:54:36 -07:00
Ben Ogle
06d06d10e0
💄
2014-07-01 10:45:13 -07:00
Ben Ogle
44b95fc637
Emit errors from the out of process searches
2014-07-01 10:44:30 -07:00
Nathan Sobo
e93e4e9333
Autoscroll to the last cursor in model when inserting text
...
Fixes #2787
2014-07-01 11:37:17 -06:00
Nathan Sobo
d4a7bff525
Merge pull request #2608 from philschatz/ps-dedupe-context-menu
...
remove duplicate context menu entries
2014-07-01 11:08:18 -06:00
Nathan Sobo
32c8a3ce99
Only adjust scrollTop when deleting lines when using the React editor
2014-07-01 09:16:29 -06:00
Nathan Sobo
a99bde4e2d
Reassign scrollTop if deleting lines decreases the max scrollTop
...
Fixes #2725
2014-07-01 09:01:04 -06:00
Nathan Sobo
431fc725ff
Interpret editor clicks relative to lines div, not the scrollView div
...
Fixes #2668
If the scroll view has padding, using it as the basis for locating
clicks relative to the lines is problematic.
2014-06-30 16:24:07 +01:00
Nathan Sobo
f5517bad66
Merge pull request #2757 from atom/ns-better-default-decorations
...
Improve default decorations for cursor and selection lines in React editor
2014-06-28 16:04:12 +01:00
Nathan Sobo
324f1392a3
Revert changes related to the .selection-line class
...
We will introduce .selection-line as part of a separate effort, not the
React switchover.
2014-06-28 15:52:10 +01:00
Nathan Sobo
15ca3e2a40
Match existing editor's behavior for .cursor-line class
2014-06-28 15:39:22 +01:00
Nathan Sobo
9a6510c938
Add .cursor-line-no-selection decoration for backward compatibility
2014-06-28 15:39:22 +01:00
Nathan Sobo
825910dc1d
Add onlyEmpty and onlyNonEmpty decoration options
2014-06-28 15:39:22 +01:00
Nathan Sobo
8435e0176b
Add selection-line class to old editor gutter for forward-compatibility
...
The React editor does not apply the .cursor-line-no-selection class,
but instead relies on a combination of .cursor-line and .selection-line
for selectors that want to target the cursor line when there is no
selection.
This allows themes to be upgraded to support the React editor and the
old editor at the same time.
2014-06-28 15:39:21 +01:00
Nathan Sobo
f5e54b0ba6
Only add 'selection-line' decoration when marker is non-empty
2014-06-28 15:39:21 +01:00
Nathan Sobo
fa7e388352
Add 'onlyEmpty' and 'onlyNonEmpty' decoration options
2014-06-28 15:39:21 +01:00
Nathan Sobo
70f352251e
Only apply cursor-line decoration to head; Add selected-line decoration.
...
The cursor-line decoration shouldn't be applied to every line that's
selected. It should only be applied to the location of the cursor. We'll
need to update themes to reflect this.
2014-06-28 15:39:21 +01:00
Nathan Sobo
1b05708d7a
Update addDecorationForMarker docs to talk about 'onlyHead' option
2014-06-28 15:39:21 +01:00
Nathan Sobo
a2b90cd501
Add 'onlyHead' option for decorations
...
It only decorates the head position of the decoration's marker.
2014-06-28 15:39:21 +01:00
Nathan Sobo
b689ffd402
Autoscroll cursor when attempting to move it, even if it doesn't move
2014-06-28 15:26:02 +01:00
Nathan Sobo
b376bd8688
Fix scrollbar dragging in React editor
...
Fixes #2751
2014-06-28 11:33:41 +01:00
Ben Ogle
7179bc5af1
Merge pull request #2738 from atom/bo-fix-max-scroll-width
...
Fix max scroll width in react editor
2014-06-25 18:16:32 -07:00
Nathan Sobo
3bf0c73170
Assign line width explicitly to prevent full screen repaints
...
Fixes #2746
2014-06-25 19:13:50 -06:00
Nathan Sobo
2b54c9bebe
Use setImmediate to batch all editor updates, even in animation frames
...
When I was using nextTick to batch updates, there were issues with
flicker. So I was attempting to always update synchronously in animation
frames, which was complicated. setImmediate doesn't cause the flicker
however, so I'm able to remove the special logic for sync updates in
animation frames and just use it across the board.
2014-06-25 18:20:49 -06:00
Nathan Sobo
63e8099088
Allow successive accented characters to be inserted in React editor
...
Refs #2732
Because we're only checking the length of the input element's selection
in the React editor on textinput events and not also its content, we
were mistaking some IME compositions as accented character menu
insertions. Clearing the content of the input on 'compositionend'
prevents this issue.
2014-06-25 18:19:53 -06:00
Ben Ogle & Nathan Sobo
f739dce210
Only recompute scroll width once for each batch of measured chars
2014-06-25 15:26:13 -07:00
Ben Ogle & Nathan Sobo
77389b0518
Update scrollWidth when the max line length / default char width changes
2014-06-25 15:26:13 -07:00
Ben Ogle
809804d0cc
💄
2014-06-25 15:26:13 -07:00
Ben Ogle
8054b769d6
Default scrollWidth to 0
2014-06-25 15:26:13 -07:00
Ben Ogle
e3c3779a73
Don’t need to return the list. So just return
2014-06-25 15:26:13 -07:00
Ben Ogle
9cc1244f32
Compute the longest line width based on the longest line
2014-06-25 15:26:13 -07:00
Nathan Sobo
8d71e3f69a
Merge pull request #2740 from atom/bo-round-scroll-vars
...
Never allow partial pixel values for scroll
2014-06-25 09:45:47 -06:00
Ben Ogle
d6f217f80a
Never allow partial pixel values for scroll
2014-06-24 18:09:03 -07:00
Nathan Sobo
27a959ec16
Combine all updates that occur in an animation frame
2014-06-24 18:48:59 -06:00
Kevin Sawicki
0369d77c85
Ensure grammars are only activated once
2014-06-24 16:21:56 -07:00