Age | Commit message (Collapse) | Author |
|
When several tags refer to the same TagData object, we now only print
it the first time, and print "(see 'foob' above)" the following times,
where `foob` is the tag identifier where we printed it the first time.
|
|
Several tags can refer to the same TagData. In particular, the
rTRC, gTRC, bTRC tags usually all three refer to the same curve.
Curve objects can be large, so allocate only a single TagData
object in that case and make all tags point to it.
(If we end up storing some cache in the curve object later on,
this will also increase the effectiveness of that cache.)
|
|
Co-authored-by: Timothy Flynn <trflynn89@pm.me>
|
|
It's now used only there.
|
|
read_tag() has no business knowing the tag signature.
|
|
|
|
|
|
This reduces reliance on the peek operation, which the generic stream
implementation does not support.
This also corrects the naming, since "tag" wasn't entirely correct for
some of the operations, where the tag takes up only part of a byte, with
the rest being reserved for data.
|
|
|
|
Allows displaying `<meta charset="x-mac-roman">` html files.
(`:set fenc=macroman`, `:w` in vim to save in that encoding.)
|
|
|
|
Instead of recomputing the pixel metrics over and over, we can just
cache them with the font and avoid a bunch of expensive computation.
|
|
|
|
This used to be optional and was disabled in two cases:
- On a mouse move event during dragging; because double clicks are
only possible on mouse up events, this had no effect.
- On a mouse event for automatic cursor tracking; this has now gained
support for double click events.
Since it's always enabled now, we can remove the `bool` argument.
|
|
|
|
|
|
At the moment, there is no immediate advantage compared to just calling
the underlying functions directly, but having a common interface feels
more ergonomic (users don't have to care about how a type serializes)
and maybe we'll find a way to hide the actual implementation from direct
access some time in the future.
|
|
As a nearby comment says, "This is a terrible approximation".
This doesn't make things less terrible, but it does make things
more correct in the given framework of terribleness.
Fixes #17156.
|
|
Per CSS-SIZING-3, the min-content block size should be equivalent to the
max-content block size for some boxes.
Honoring this gives more correct results, and avoids unnecessary work in
many cases since the cached max-content size can be reused.
|
|
|
|
Let's allow any box to be scrollable, not just block containers.
|
|
Grid containers were incorrectly represented as BlockContainer before.
Furthermore, GridFormattingContext had a bogus inheritance relationship
with BlockFormattingContext.
This patch brings our architecture closer to spec by making grid
containers be plain boxes and making GFC not inherit from BFC.
|
|
Flex containers were incorrectly represented as BlockContainer before,
which would make some CSS layout algorithms do the wrong thing.
|
|
Containing blocks can be formed by boxes that aren't block containers,
so let's make this return a Box and work towards type correctness here.
|
|
This algorithm is reused in abspos sizing, and so should not be specific
to block containers (even if the name suggests it.)
|
|
|
|
With this, we can parse all types required in v4
"Three-component matrix-based Input profiles".
|
|
|
|
|
|
This is the type of the chromaticAdaptationTag, which is a required tag
in v4 profiles for all non-DeviceLink profiles.
|
|
|
|
Makes these more amenable to copy-pasting :^)
No behavior change.
|
|
|
|
|
|
This is used in v2 profiles for the required 'desc' tag. In v2
profiles, it's also used by the 'dmnd', 'dmdd', 'scrd', 'vued' tags.
In v4 profiles, these all use 'mluc' instead (except for 'scrd', which
is no longer part of the spec in v4).
|
|
|
|
This fixes a few rendering bugs especially where the first or last
color stop had a zero alpha value. Note we can't just set the first
and last values on the gradient line to the first/last colors since
that might not be correct (e.g. have a transition hint).
|
|
Since the async parts of the spec are not stage 3 at this point we don't
add AsyncDisposableStack.
|
|
The using declarations have kind of special behavior in for loops so
this is seperated.
|
|
In this patch only top level and not the more complicated for loop using
statements are supported. Also, as noted in the latest meeting of tc39
async parts of the spec are not stage 3 thus not included.
|
|
|
|
This will allow us to specify things like SyncDispose and perhaps
AsyncDispose in the future.
|
|
|
|
Any test with multiple expect(...).toBe{True, False} checks is very hard
to debug.
|
|
Without a message these just show 'ExpectationError' even if the check
has multiple steps.
|
|
|
|
|
|
Also make return key behave more like other browsers when editing
|
|
|
|
AK::shuffle() doesn't work on these, because their operator[] returns a
reference to the pointed-at value, instead of to the NonnullPtr itself.
|