Nathan Sobo
3973939de1
Don’t constrain scrollTop/Left until required measurements are assigned
...
This commit also adds to the list of required measurements and updates
the spec with a buildPresenter helper to more easily supply default
values for required measurements in each spec when they aren’t relevant
to that spec’s content.
2015-02-04 11:13:24 -07:00
Nathan Sobo
b792190693
Constrain scrollLeft based on computed clientWith and scrollWidth
2015-02-04 10:22:29 -07:00
Nathan Sobo
5bb3095ffa
Constrain scrollTop based on clientHeight and scrollHeight
2015-02-04 09:38:00 -07:00
Nathan Sobo
3656d4cca6
Pass options in DisplayBuffer::screenRangeForBufferRange
2015-02-04 08:42:34 -07:00
Nathan Sobo
6977660699
Store ‘isOnlyWhitespace’ in line presenter state
2015-02-04 07:59:34 -07:00
Nathan Sobo
ba6d11e24e
Merge branch 'master' into ns-editor-presenters
2015-02-04 07:57:04 -07:00
Nathan Sobo
86991bbec2
Merge branch 'driskell-bugs/ident_guide_whitespace_only'
2015-02-03 21:26:25 -07:00
Nathan Sobo
a685f3dc37
Prevent updates for off-screen line decoration markers on change
...
When there were lots of off-screen markers, we were performing lots of
redundant updates when off-screen markers changed. Now we only perform
updates if they intersect the visible row range.
@maxbrunsfeld this should improve the situation for folding/unfolding
when there are lots of others folds. Let me know.
2015-02-03 21:02:33 -07:00
Nathan Sobo
20a95269c9
Preserve line number for mouseWheelScreenRow in a sane way
...
What we were doing before made no sense.
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 20:41:59 -07:00
Kevin Sawicki
a4976c32ae
Remove release notes from event payload
...
The release notes are provided by Squirrel on Mac but not by Squirrel for
Windows and the release notes package pulls them down manually anyway
so this field is no longer needed.
Checking for the presence of the release notes previously was preventing the
event from firing on Windows which would cause old release notes to show in
the package.
Closes #3757
2015-02-03 14:57:33 -08:00
Nathan Sobo
78b8039384
Don’t require sync update before measuring when autoHeight changes
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 15:05:45 -07:00
Nathan Sobo
cd77870286
In presenter, handle the first line being soft-wrapped
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 15:05:44 -07:00
Nathan Sobo
75652e36d9
Remove ? guard from ::oldState and ::newState references
2015-02-03 15:05:44 -07:00
Nathan Sobo
9991cd73c7
Reference scrollingVertically in the proper location in presenter state
2015-02-03 15:05:44 -07:00
Nathan Sobo
ac215e11b4
Fix velocity scrolling upward
...
There’s no need to check that the mouseWheelScreenRow is on screen
before preserving the corresponding line.
2015-02-03 15:05:44 -07:00
Nathan Sobo
20ce35c017
Emit update events in TextEditorPresenter when highlights are removed
2015-02-03 15:05:44 -07:00
Nathan Sobo
0a6116a785
Fix undefined method errors in overlay manager
...
Access properties directly now
2015-02-03 15:05:43 -07:00
Nathan Sobo
2dc29a60ef
Avoid full decorations query when decorations are added
2015-02-03 15:05:43 -07:00
Nathan Sobo
b78522d8e6
Avoid full decoration query when line decorations’ markers change
2015-02-03 15:05:43 -07:00
Nathan Sobo
c6f23c2edb
Dispose of decoration subscriptions when it’s destroyed
2015-02-03 15:05:43 -07:00
Nathan Sobo
342903567e
Avoid full decoration query when line decorations are destroyed
2015-02-03 15:05:43 -07:00
Nathan Sobo
648c58d41e
Hide line decorations for invalid markers again
2015-02-03 15:05:42 -07:00
Nathan Sobo
7deb411e84
Fix randomized spec failures
2015-02-03 15:05:42 -07:00
Nathan Sobo
4a74d4adba
Avoid decoration queries when updating individual highlight decorations
2015-02-03 15:05:42 -07:00
Nathan Sobo
f337553a70
Handle highlight state updates in ::updateDecorations
2015-02-03 15:05:42 -07:00
Nathan Sobo
0e85efdd28
🐎 Cache line/line-number decorations to avoid per-line queries
2015-02-03 15:05:34 -07:00
Nathan Sobo
3884a30f39
Unify decoration observation
2015-02-03 15:05:33 -07:00
Nathan Sobo
f99b85a299
Use properties directly instead of getters
...
This will emphasize a design where everything is updated when the model
and view measurements change rather than recomputed as needed.
2015-02-03 15:05:33 -07:00
Nathan Sobo
89344c6cfd
Update scrollbars state when editor content changes
2015-02-03 15:05:33 -07:00
Nathan Sobo
74e4756ef0
🐎 Don’t update presenter state unless measurements change
2015-02-03 15:05:33 -07:00
Nathan Sobo
510520d2c7
🎨 rename ::getStart/EndRow to ::computeStart/EndRow
2015-02-03 15:05:32 -07:00
Nathan Sobo
4eb39b1be2
Remove unnecessary onDidChangeSoftWrapped subscription
2015-02-03 15:05:32 -07:00
Nathan Sobo
9d507ea692
Break out state updates explicitly when editor content changes
2015-02-03 15:05:32 -07:00
Nathan Sobo
b521e8dc97
Handle auto-height in TextEditorPresenter
2015-02-03 15:05:32 -07:00
Nathan Sobo
bbc1a264b5
Make each section of presenter state self-contained
...
This means we have some duplicated values in different parts of the
tree, but it’s cleaner in the view since each component only consumes
a single object. Seems like the presenter should convey the correct
data to the correct locations and minimize the logic in the view. A
few duplicated integers is a reasonable trade-off.
2015-02-03 15:05:31 -07:00
Nathan Sobo
da4b3a47ef
Don’t observe decorations in text editor view
2015-02-03 15:05:31 -07:00
Nathan Sobo
0e27bebbb3
Fix indentation
2015-02-03 15:05:31 -07:00
Nathan Sobo
efdba9fc24
Use presenter state for scrollbars and scrollbar corner
2015-02-03 15:05:31 -07:00
Nathan Sobo
0910e86357
Add .right and .bottom to presenter scrollbar states
2015-02-03 15:05:31 -07:00
Nathan Sobo
14776e3f0a
Give each scrollbar its own state object and track visibility
2015-02-03 15:05:30 -07:00
Nathan Sobo
42ab02d7d2
Rename ::clientHeight/Width to ::height and ::contentFrameWidth
...
The term “client” was actually a misnomer here because it typically
means the height excluding the scrollbars, which wasn’t how we were
using it here.
2015-02-03 15:05:30 -07:00
Nathan Sobo
1b5be9aef8
Track horizontal/vertical scrollbar height/width in presenter
2015-02-03 15:05:30 -07:00
Nathan Sobo
9de8ab949f
Drop TextEditorComponent::getRenderedRowRange
2015-02-03 15:05:30 -07:00
Nathan Sobo
d8cafb1fc6
Don’t observe screen line changes in editor component
2015-02-03 15:05:29 -07:00
Nathan Sobo
76241fb779
Handle line and line number preservation in presenter
...
The target of mousewheel events needs to be preserved when scrolling.
It used to be dealt with in the view, but now we can do it in the
presenter for a simpler view implementation.
2015-02-03 15:05:29 -07:00
Nathan Sobo
d9a5d141eb
Clear ::mouseWheelScreenRow after delay even if we don’t actually scroll
2015-02-03 15:05:29 -07:00
Nathan Sobo
37a040a620
Preserve line numbers in presenter based on ::mouseWheelScreenRow
2015-02-03 15:05:29 -07:00
Nathan Sobo
35d3690088
Preserve lines in TextEditorPresenter based on ::mouseWheelScreenRow
2015-02-03 15:05:29 -07:00
Nathan Sobo
578a76ba6b
Make “mouse wheel” 2 words in presenter API
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 15:05:28 -07:00
Nathan Sobo
da5ee3fa86
Add TextEditorPresenter::state.mousewheelScreenRow
2015-02-03 15:05:28 -07:00