Note: "clean window" is defined as 1) having an empty project and 2)
having no pane items or only empty unnamed buffers
When project is empty and there is saved state associated with the
opened/added folders...
* Open a file or folder (from command line or Open menu)
* If we have a clean window, restore project state in window
* If window is dirty, restore saved state in new window
Note: "clean window" is defined as 1) having an empty project and 2)
having no pane items or only empty unnamed buffers
Adding folder(s)
* If we have a clean window, restore project state in window
* If window is dirty, prompt user to
* add folder to the existing window LOSING state
* OR open project folder in a new window
Previously, when calling `destroy` on a `PanelContainer` containing
multiple panels, Atom would throw a `Cannot read property 'destroy' of
undefined` exception. This was due to iterating over the panels while at
the same time destroying them, which caused the iterated array to be
modified during the loop.
With this commit we slice the array before iterating over it so that
destroying a `PanelContainer` doesn't throw exceptions anymore.
* `[object Object].anonymous` changed a while back to just `.anonymous`
* Windows uses `file:///path` notation, so take that into account
* Also relativize paths in parentheses
This changes the element pool to only remove elements' children right
before we use an element again in order to preserve the structure of
double-freed elements. This will aid in debugging double-free
occurrences. It's also less work in cases where nodes aren't reused.
Fixes#13729
Previously, when adding a window, we were unable to read its current
project paths out of the hash of the URL during window initialization
because the window still considered itself to be loading. Rather than
fixing this issue, we decided to completely eliminate the sharing of
state between processes in the window.location and instead switch to
cached synchronous RPC for the loadSettings and a dedicated RPC-based
mechanism for the project paths.
Fixes#13647.
This restores the behavior we had prior to #13475 when there are no pane
items while preserving its improved behavior for paths outside of the
current project.