Congratulations to everyone in the Godot community for the tremendous work
done on this release since 18 months, with hundreds of contributors pushing
almost 7500 commits with more than 3000 PRs and closing over 2000 issues
(and fixing even more than that, as many work-in-progress bugs were fixed
before an issue could be filled).
Godot 3.0 is definitely our biggest and boldest release so far, and we want
to thank the whole community for their unswerving support during this long
wait.
From there on, there is a lot of work to do to strengthen the foundations
that we built with 3.0, fixing the bugs that the many refactorings probably
introduced, optimizing new features and enhancing the usability again...
The 3.x era should be a fruitful one for Godot, and we hope that you will
continue using it to create awesome 2D and 3D games and increase the
notoriety of your favourite engine in the game development industry.
And now, let's all start waiting for 3.1...
The target of the TARGETS type should be XA_ATOM and not XA_TARGETS when
requested. Since we are sending a number of ATOMS the size should be set
to the integer size and not the char size.
The size field of the atoms is also the number of atoms and not the size
of the array. This caused some clients to wrongly interpret the data and
read garbage in the X11 packet.
I also add the more modern representation for UTF-8 and clarify the
error message if a client attempts to request a type we don't know
about.
This fixes#10431
Current this is hardcoded as '1' for any platform except Unix. The
little is_wow64() dance is required to get correct output on a 32bit
compiled godot running on 64bit Windows according to MSDN.
This code should be UWP safe but I have no way to test that so it's not
implemented for UWP yet.
This behavior better matches other gui toolkits. A selected disabled
button still can't be interacted with but it can now be selected. This
seems to be what QT and GTK do also.
This fixes#16131
Dictionaires did not use the VariantHasher and VariantComparator making
them unsafe for use with NaN values as keys. This PR uses the
appropriate Variant implementations for these functions.
var d = {}
d[Vector2(NAN, NAN)] = 0
d[Vector2(NAN, NAN)] = 0
print(d.size())
will now output '1' and not '2'
This fixes#16031