* When there's nothing to collide with:
* Place the new scene on XZ plane when possible.
* When the camera does not point toward the XZ plane or the
intersection is too far away, place the new scene on a plane that
is in front of the camera and parallel to the frame.
* Fixes positioning when in orthogonal view.
* Place on physical collision point or the XZ plane when possible.
* Otherwise, place it on the plane in front of the camera as if the
camera was perspective.
* Makes use of snap settings when placing the new scene.
Fix that Windows receive WINDOW_EVENT_MOUSE_EXIT on startup.
When moving the mouse cursor from one window to a different one, make sure that the first window receives the WINDOW_EVENT_MOUSE_EXIT event before the second window receives the WINDOW_EVENT_MOUSE_ENTER event.
Send Mouse-Move events also for Windows, that are currently not focused.
For determining the currently hovered window, consider not just the currently focused window, but also other windows.
Send mouse move events to focused window instead of hovered window.
MultiplayerPeer changes:
- Adds is_server_relay_supported virtual method
Informs the upper MultiplayerAPI layer if it can signal peers connected
to the server to other clients, and perform packet relaying among them.
- Adds get_packet_channel and get_packet_mode virtual methods
Allows the MultiplayerAPI to retrieve the channel and transfer modes to
use when relaying the last received packet.
SceneMultiplayerPeer changes:
- Implement peer signaling and packet relaying when the MultiplayerPeer
advertise they are supported.
ENet, WebRTC, WebSocket changes:
- Removed custom code for relaying from WebSocket and ENet, and let it
be handled by the upper layer.
- Update WebRTC to split create_client, create_server, and create_mesh,
with the latter behaving like the old initialize with
"server_compatibility = false", and the first two supporting the upper
layer relaying protocol.
Nodes may have been deleted by shortcuts. For example, when switching
scenes with `Ctrl` + `Tab` / `Ctrl` + `Shift` + `Tab`, some controls
will be deleted and recreated.
This argument is now non optional, but this never hits the same bad access.
I voted to simplify the code here since the argument is never used optionally in our codebase.
This change makes it easy, in the "Create Shader Node" dialog, to search for VS nodes by just typing the operator. For example, instead of typing "multiply", you can just type "*" and multiply nodes will be listed.
This feature is inspired by Unreal Engine node graph editor's UX.
Implements and closes https://github.com/godotengine/godot-proposals/issues/5663