This fixes an issue where brining up a menu can directly activate an
action in the menu. Notably on macOS.
Nathan reports that this may also address #9515
Note: mac touchpads are not affected since right-click there is
effectively a "press and hold".
Much like the edit-tool and grid-types, clock-modes are UI state.
Saving the UI state separately allows them to be used
consistently for new sessions. Previously clock-modes were set
initially (at application start) and when loading sessions.
The clock modes of newly created sessions was different
depending on loading another session prior to creating the
session. This is now no longer the case.
Window size has to be set before calling `setup_toplevel_window()`.
and `set_show_tabs()` - see also acf13e9498 and 42cb321039.
This also unconditionally saves the current settings to global config
instant.xml. This was previously only done in rare cases when first
closing the session and then quitting Ardour.
When auditioning is started, transport controls are disabled
via `set_transport_sensitivity(false)`.
This prevents <space> from being handled:
DEBUG::Bindings: binding for Key 32 (space) state 0 : Transport/ToggleRoll - insensitive, skipped
So the key event is passed on, and can reach the clip-picker treeview
where <space> selects and/or activates a row, which re-starts
audition.
ARDOUR_UI::toggle_roll() cancels audition when audition is active,
so this action should be sensitive, even while auditioning.
* remember window visibility, size and position
* Show as toggle in the window-menu (rather than show action)
* reduce specialization, use WM and ArdourWindow infrastructure
(transient parent, window-type, etc)