This new method allow you to get the line offset of the current
selection (returns -1 if nothing is selected.)
This is useful if you want to pop up a control or menu above the
currently selected text. Previously there was no accurate way to get
this information.
The logic is moved from the implementation of `scroll_to_selection`
verbatim, and that method has been adjusted to avoid repetition.
When calculating table height, RichTextLabel::_shape_line would increase the height when it reached the end of a complete row, or the final cell of the table. RichTextLabel::_resize_line would only increase the height at the end of a complete row, causing the height to ignore the final row if not all cells were populated. This would cause the final row to overlap with the following line in the RichTextLabel if it was the last visible line in the RichTextLabel, as _resize_line is called when updating scrolling properties.
This change moves the common table size calculations to a separate function to reuse the code between _shape_line and _resize_line, keeping the final cell check that was used in _shape_line.
Fixes#92603
This adds binds for GraphEdit/GraphElement/GraphNode, which were
skipped before due to a rework. This also adds binds for Window,
which was skipped before due to a complicated code organization.
Also adds theme cache entries/direct cache access to a few places
that previously missed it. Some theme properties are now exposed
to other classes via friendships or public getters for convenience.
This removes all string-based theme access from scene/ classes.
In games, blinking text is one of the more frequently used animations.
It can be (sparingly) used to bring attention to important messages
in a chat log or inventory tooltip, for instance.
This effect accepts the following options:
- `freq`: How fast text blinks (higher is faster).
- `color`: The target color multiplier for blinking.
The default mostly fades out text, but not entirely (for better accessibility).
- `ease`: The easing function exponent to use.
Negative values provide in-out easing, which is why `-2.0` is the default.
This PR makes it so that all subtags are normalized before usage.
Normalization means removing any leading and/or trailing quotation marks
from any given subtag.
Fixes: https://github.com/godotengine/godot/issues/75501