Both of these objects may observe the buffer owned by the document, so we should be sure the observers are gone since closing a document may delete its buffer.
Previously this was done by exposing iterators but for this to go into the abstract base class we sort of need abstract iterators and that is too complex and visitor interface is sufficient for our single use case.
This fixes a problem introduced by 3812a8d1fd3a5c4cf964f15ceeeca529238bc35b where we could end up not closing an undo group because the OakTextView’s document was changed before destruction of the refresh_helper_t.
The intent was to expose indent settings via the UI which is still a goal, but we’ll do a lot of refactoring first, so removing unused public API to make refactoring simpler.
If we fail to load an image by name then we try again with a “Template” suffix so that commands can still set marks using just `note`, `warning`, and `error`.
When loading by full path and the path (minus extension) has a “Template” suffix then we manually set the image’s template property to YES since the system only seems to do this for images loaded from bundles.
Some targets were including headers from frameworks not specified in their link dependencies. For a clean build this could cause an issue because the header was not available at the time of building the target.
The updated link dependencies are also based on what a target’s tests require. Ideally tests would have separate link dependencies, but as we don’t want to maintain this manually, this will have to wait until the build system automatically handles link dependencies.
Currently the commit command uses constants from the CommitWindow framework but should actually not be linked with it. However, the optimizer will strip dead code, so it should not result in much if any difference in the resulting binary and does solve a build dependency issue.
If this is not done, we get an “unable to simultaneously satisfy constraints” warning on 10.11.4 and possibly earlier versions. This is likely because the print dialog was redone to use layout constraints, but I don’t know which version of OS X nor do I know how this change affect the print dialog prior to the introduction of layout constraints.