YDK2 uses SetSystemUIMode() for fullscreen. This also uses space
otherwise reserved for the menu bar at the top, and is apparently
preferable for Ardour's UI.
However when a user manually enters fullscreen using the window
title-bar's green button (NSWindow toggleFullScreen). YDK will crash
when the user then also tries to use YDK's fullscreen mode:
```
NSWindowStyleMaskFullScreen cleared on a window outside of a full screen transition.
called from
[NSWindow setStyleMask:]
gdk_window_set_decorations
gdk_window_fullscreen
```
Ideally we'd set NSApp presentation flags so that the toplevel window
would allow one to zoom (maximize), but not to enter fullscreen. Like it
used to be on OSX. It is unclear how to achieve this on macOS for
resizable windows, short of marking the top-level window a dialog or
utility window.
see also d1b462c213 and Manager::set_transient_for.
This fixes a bug on macOS: detach Editor, re-attach Editor.
After that `own_window()` is true. Showing the LAN dialog
showed the editor's hidden Window as its parent.
This makes it harder for users to accidentally open session
files which are intended to be used only with older versions
of Ardour.
Note that backup/ is not included in ::find_all_sources_across_snapshots
so Session > Cleanup can remove files used in old backups.
Commit cd5369c added some cleanup code to `libs/ardour/session.cc`,
which drags in the type info symbol of VST3PluginInfo. When built
with `--no-vst3`, the resulting binary dies at startup:
```
ld-elf.so.1: /usr/local/lib/ardour8/libardour.so.3: Undefined symbol
"_ZTIN6ARDOUR14VST3PluginInfoE"
```
Make that code compile conditional on VST3_SUPPORT.
Occurs on FreeBSD 14.0-RELEASE, clang 16.0.6, amd64.
Note that this implementation only redraws a single (cairo_rectangle_t-defined) rect, and cannot
provide sub-rects the way that a normal GDK/GTK expose-driven redraw can