I've reverted the first attempt (https://github.com/godotengine/godot/pull/10653).
I was very naive and didn't consider that the glitch happens also if you're not in the first column, ex. if you have 2 tabs and press return in between them.
Hope this will solve the problem without messing anything else.
Those functions were added in #8277 but they did more harm than good. They're subtle, don't do what people think and requires users to understand the non-uniqueness of polar decomposition. They ended up confusing people.
Until we store additional information enough to make a unique polar decomposition, these functions shouldn't be a part of Basis.
Fix 3D joint handling of collision exceptions, so that they lose effect when the joint is not valid in every case; also some redundant code removed.
Also avoid trying to create the joint when not neither body A nor body B are set.
Make 2D joints be handled like their 3D counterparts, which adds the fixes to them while also removing duplicated code.
(adapted from commit 4a98a59aa6810a679370e3664e89b3d83eb3d879)
- Makes vararg methods automatically use PROPERTY_USAGE_NIL_IS_VARIANT on return types
- Completely removes the ":type" suffix for method names. Virtual methods must use the MethodInfo constructors that takes Variant::Type or PropertyHint as the first parameter for the return type (with CLASS_INFO as a helper to get the PropertyInfo). Parameters must use PROPERTY_HINT_RESOURCE_TYPE and hint string.
- PROPERTY_USAGE_NIL_IS_VARIANT is no longer needed for parameters, because parameters cannot be void.
- Adds missing PROPERTY_USAGE_NIL_IS_VARIANT to virtual and built-in methods that return Variant.
-Make sure handles are always visible (on top)
-Fixed instanced scene selection (should work properly now)
-Added interpolated camera
-Customizable gizmo colors in editor settings
Currently the shadow gradient can't be disabled and always has a minimum value of 1.
I'm not sure why though, the default value seems to be 0 and the rasterizer checks for 0 [here](8fc6bb8f77/drivers/gles3/rasterizer_canvas_gles3.cpp (L1284)) before enabling it.
Feels like a bug to me, but if there's a reason for that let me know.
As a side effect, this edit effectively changes the default value from 1 to 0 for new projects.
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.
This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.
It is explained in this article: https://www.viva64.com/en/b/0226/