The color picker has a "legacy" fallback mode when
`FEATURE_SCREEN_CAPTURE` is not supported by the current
`DisplayServer`. It works by "freezing" the current view by making a
huge `Popup` with a `TextureRect` inside covering the screen.
Before this patch, said `TextureRect` could get cut off if its buffer
was nominally bigger than the parent popup, such as when the
`canvas_items` content scale mode is active.
This is because the default TextureRect scaling logic only allows
expanding the texture up. `EXPAND_IGNORE_SIZE` fixes that by allowing
the texture to logically "shrink", filling the whole screen
independently of the actual buffer size.
Special thanks to Federico Fausto Santoro for helping with the diagnosis
:D
Co-Authored-By: Federico Fausto Santoro <fedyfausto@hotmail.com>
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
The following formats are now accepted (leading `#` is optional):
- `#1` -> `#111111`
- `#12` -> `#121212`
- `#12345` -> `#11223344` (`5` at the end is discarded)
- `#1234567` -> `#123456` (`7` at the end is discarded)
Made the HTML field send change events based on whether the new color's string is different from the previous color's string (instead of whether the new string parses to the current color value).
Previously, updating the color value even when the corresponding string hadn't changed would unnecessarily quantize the color value to 8 bits just by opening/closing the Color Picker.
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.
ColorPicker was only updating colors if its swatches were empty. It
should always update from the cache in case some other ColorPicker
updated the swatch cache.