Nathan Sobo
ddf7c04e66
Use -> arrows on methods moved to the model
2014-01-10 15:51:27 -07:00
Nathan Sobo
9694d255f0
Simplify item removal
...
- Move emitting of item removal event into ::removeItemAtIndex. Pass a
destroying param instead of setting state.
- Destroy the pane if ::items is empty at the in the item removal
method, rather than with a condition. This gives the item removal event
a chance to fire first.
2014-01-10 15:48:08 -07:00
Nathan Sobo
c7fded0d7f
Only emit 'pane:removed' events if the pane is actually destroyed
...
The pane may only be detached temporarily during splitting/unsplitting
2014-01-10 15:04:51 -07:00
Nathan Sobo
284d823ad5
Tighten up search for parent pane
...
The introduction of the .flexbox-redraw-hack required the query to be
loosened, but I went too far. We don't want to return a pane for mini
editors that happen to be nested on another view that's inside a pane.
2014-01-10 14:36:07 -07:00
Nathan Sobo
1ee783fdb9
Base PaneContainer::getActivePane on the model's active pane
2014-01-10 13:44:02 -07:00
Nathan Sobo
47870a1214
Remove views (rather than detaching) if Pane::destroyItem is called
2014-01-10 13:35:18 -07:00
Kevin Sawicki
de25b8ea37
Cache specificities
2014-01-10 12:01:56 -08:00
Kevin Sawicki
ba9f353c4a
Use precompile pattern when available
2014-01-10 11:43:45 -08:00
Nathan Sobo
7665cd1a6a
When a pane view is removed in anyway, make sure its model is destroyed
2014-01-10 12:35:12 -07:00
Nathan Sobo
d34327a667
Remove the EditorView when Editor is destroyed
2014-01-10 11:56:27 -07:00
Nathan Sobo
d2146f9b2e
Emit 'pane:removed' event in container when last pane is removed
...
Doing it in the pane view is awkward because the view may have already
been detached.
2014-01-10 11:45:08 -07:00
Nathan Sobo
732d36af28
Null guard container in Pane::makeActive
...
Panes can exist outside of containers, albeit only briefly. If
::makeActive is called when the pane is in this state, consider it a
no-op.
2014-01-10 11:37:42 -07:00
Nathan Sobo
edfc86f153
Make PaneContainer::getActivePaneItem retrieve it from the model
2014-01-10 11:34:26 -07:00
Nathan Sobo
5e1e092650
When the last pane is destroyed, null out the root and active pane
2014-01-10 11:22:19 -07:00
Nathan Sobo
c69febd44d
Preserve the active pane across serialization
2014-01-10 11:22:02 -07:00
Nathan Sobo
a9d7564f3e
Account for the .flexbox-repaint-hack in WorkspaceView::getEditorViews
2014-01-10 11:21:10 -07:00
Nathan Sobo
a0b733b53d
Skip the flexbox-repaint-hack when seeking editor pane with ::parents
2014-01-10 11:20:12 -07:00
Kevin Sawicki
8cb565ad2a
Add parseKeystroke function
2014-01-10 10:10:08 -08:00
Kevin Sawicki
e099f00739
💄 Use unless instead of if not
2014-01-10 09:57:11 -08:00
Kevin Sawicki
e707ab5441
Remove unused require
2014-01-10 09:52:30 -08:00
Nathan Sobo
1c7eef89c3
Merge branch 'master' into ns-pane-splits-with-models
2014-01-10 10:40:52 -07:00
Nathan Sobo
6eacfa7077
Call Range::toString, not ::inspect in DisplayBufferMarker::inspect
2014-01-09 19:04:52 -07:00
Nathan Sobo
9aefafb831
Use PaneContainerModel::$activePaneItem for 'active-item-changed' events
...
Yay behaviors
2014-01-09 18:58:01 -07:00
Nathan Sobo
5a3353ec28
Add PaneContainer view to deserializers
2014-01-09 18:35:16 -07:00
Nathan Sobo
e87b8dc463
Remove focusNext/PreviousPane methods from PaneContainer view
2014-01-09 18:35:01 -07:00
Nathan Sobo
60daa483e6
Include orientation when serializing PaneAxisModel
2014-01-09 18:34:09 -07:00
Nathan Sobo
cd699d8b9b
Transfer focus to the root view when the last focused pane is destroyed
2014-01-09 18:17:08 -07:00
Ben Ogle
0d2067e1a4
Merge pull request #1400 from atom/bo-fuck-rejection
...
Dont use reject in project::scan cancel
2014-01-09 17:09:58 -08:00
Nathan Sobo
8647137952
Remove active status management from Pane view; rely on model instead
2014-01-09 18:00:54 -07:00
Ben Ogle
fbcfad28c3
Reject is broken. Ugh. Just resolve it
2014-01-09 17:00:34 -08:00
Nathan Sobo
5e1b2e2696
Manage the active pane at the model level
2014-01-09 18:00:19 -07:00
Kevin Sawicki
20ee7b432c
Wrap item in array since it is a trigger call
2014-01-09 15:18:44 -08:00
Nathan Sobo
4026e6ca5c
Properly serialize pane focus state
2014-01-09 16:09:22 -07:00
Corey Johnson
378901e0d2
Merge pull request #1375 from atom/ns-fix-crash-exit
...
Properly exit when render process crashes if exitWhenDone option is true
2014-01-09 15:08:56 -08:00
Nathan Sobo
964abd3141
Suppress blur when replacing a pane axis with its last child
...
If the pane axis contains a child pane, its temporary removal from the
DOM causes a blur event that we don't want to screw up our focused
state.
2014-01-09 16:08:52 -07:00
Nathan Sobo
4dcba4bb27
Destroy remaining items when a pane is destroyed
2014-01-09 16:06:02 -07:00
Nathan Sobo
073ea84d69
Handle consequences of item removal in the model
2014-01-09 16:05:00 -07:00
Nathan Sobo
2965d2e974
Bind Pane view's focus to focus state on the model
...
It's a bit tricky… we don't want to blur the model when focusing the
pane's active view causes a focusout event on the pane, so we use
::suppressBlur on the model to prevent it from blurring as the focus
is transferred.
2014-01-09 16:01:52 -07:00
Nathan Sobo
a67f0d4d57
Make PaneModel::items an observable sequence
2014-01-09 15:53:52 -07:00
Nathan Sobo
5309d5f24d
Add ability to suppress blur on all focusable objects in a focus context
...
When a view receives a 'focusout' event, we relay that to the model by
calling ::blur. This is great for when users initiate the change in
focus, but 'focusout' events can *also* be caused by elements being
temporarily detached from the DOM.
The ::suppressBlur method gives the ability to ignore blur calls during
a certain operation. This is helpful, for example, when we want to
detach a model and reattach it somewhere else without changing its focus
state.
2014-01-09 15:46:32 -07:00
Nathan Sobo
af3ca57094
Make focus state distinct until changed on Focusable objects
2014-01-09 15:43:05 -07:00
Kevin Sawicki
d96b63d791
Move enable/disable to parent Package class
...
This was previously unimplemented in TextMatePackage causing exceptions
when trying to enable/disable a package of that type.
2014-01-09 14:13:49 -08:00
Nathan Sobo
466868e639
Fix access to undefined root property
...
The ::filterDefined transform unfortunately doesn't prevent an undefined
initial value when applied to behaviors.
2014-01-09 12:19:01 -07:00
Nathan Sobo
2317c6835e
At the model layer: Focus next pane when a focused pane is destroyed
...
This incorporates the Focusable mixin into PaneModel and ensures that
all panes in the same pane container share a single focus context.
2014-01-09 12:19:01 -07:00
Nathan Sobo
4e99d003ee
Add Focusable mixin and FocusContext
...
Focusable objects have ::focus and ::blur methods and a ::focused
property. Focusable objects can be assigned a ::focusContext, and the
::focused property will only be true for at most one object with the
same context.
2014-01-09 12:19:01 -07:00
Nathan Sobo
1a5e10c1d2
Focus the new pane when splitting
2014-01-09 12:19:01 -07:00
Nathan Sobo
8efcb1abfa
Remove pane splitting/unsplitting logic from view
...
There's still some failing specs around focus management, but it's
getting closer.
2014-01-09 12:19:01 -07:00
Nathan Sobo
f031a9706d
Support unsplitting in the model layer
2014-01-09 12:19:01 -07:00
Nathan Sobo
eb7f3ff5af
Support splitting at the model layer
...
Splitting in the view will need to be removed and mapped to splits in
the model.
2014-01-09 12:19:00 -07:00
Nathan Sobo
bb595ab08a
Start adding PaneAxisModel
2014-01-09 12:19:00 -07:00