The get_global_transform method of CanvasItem doesn't consider the canvas_transform, so when any camera is enabled, its return value may differ from get_screen_transform. Thus, we should use get_global_transform_with_canvas instead, which provides consistent results with or without cameras enabled.
Previously we had different logic for direct key presses and client-side
key repetition, as one queued up input events and the other dispatched
them directly (client-side key repetition is run from the main thread).
I kinda figured out that this difference doesn't really matter, as we
can queue them up before the thread message dispatching logic. That's
exactly what we do now, which allows us to make a single method for both
of them, making the code much clearer and simplifying future maintenance.
This patch also includes a tiny fixup in the compose logic, which checks
for the validity of the generated key event before actually working with
it. The cases in which we can end up with an invalid reference are very
few, so it's not the end of the world, but it's still absolutely a good
idea to check, to avoid nasty surprises down the line.
- Prevents source generators from fully qualifying names being assigned to within an object initializer
- Adds ResourceTextureWithInitializer test cases to ExportedFields and ExportedProperties
Co-Authored-By: Paul Joannon <437025+paulloz@users.noreply.github.com>
Co-Authored-By: Paviel Kraskoŭski <kraskovskiy94@gmail.com>
Docks without default slots (index -1, config key "dock_0") were being
infinitely appended to the editor layout config because this special
slot was never cleared before saving, unlike regular dock slots.
This adds code to explicitly clear the dock_0 config key before saving
closed docks, preventing infinite appending.
Added CommonEvaluate class to be used by OperatorEvaluator* classes that have the same logic for `evaluate` and `validated_evaluate`. CommonEvaluate initializes the return Variant to the correct type, then passes through to validated_evaluate, reducing code duplication between evaluate/validated_evaluate and avoiding the overhead of creating/destroying temporary Variants from previous evaluate implementations.
This is a follow-up to #65011.
For scenes with **Editable Children** enabled, the main scene will record
more information and resource mapping will be valid for multiple nodes.
This adds macro `GodotProfileZoneGroupedFirstScript`, and uses interning for speedy lookups.
Co-authored-by: Samuel Nicholas <nicholas.samuel@gmail.com>