This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
_reset_time_scales() has a visibility guard that was originally needed
to prevent resets on session start. After 4e06e305bf scoped the call to
only run when all sessions end, the guard is unnecessary and prevents
the speed state from being properly reset.
Replace is_visible_in_tree() with an is_inside_tree() guard on the UI
update only, to avoid theme access warnings while still allowing the
state reset when the Game tab is not active.
Also includes a fix to the reset-to-1.0x button, which will now always be
disabled if the speed is already 1.0x.
Fixes#115400.
Add `is_inside_tree()` guard to `GameView::_editor_or_project_settings_changed()`
to prevent accessing invalid state when the signal is emitted during editor shutdown.
Fixes#113829
This patch introduces a new protocol proxy, which multiplxes Wayland
clients into a single connection, allowing us to redirect calls (e.g.
create toplevel -> create subsurface). Mixed with some state tracking
and emulation, we can embed a full-featured client into the editor.