Age | Commit message (Collapse) | Author |
|
This patch mitigates a rough gradient for the brush tool with a low
hardness. Previously the gradient alpha value was truncated by the type
conversion to int. Now the desired alpha value is scaled up to mitigate
the information loss due to type conversion which results in a much
smoother gradient.
|
|
This patch changes the cursor for the brush tool to a circle of dynamic
size to indicate the region where the tool will apply color changes.
|
|
Shares the same machinery as linear-gradient()s so this is quite easy.
|
|
|
|
The container appears to be null for certain elements such as the
"update your browser" box when clicking on the document during certain
parts of loading. Skipping it works fine, but should obviously be
fixed, so it prints a debug output when this happens.
|
|
In Google Docs with our user agent string, this is the event it listens
for to insert characters into the document.
|
|
Google Docs focuses a "text event target" iframe using Window.focus on
the iframe's contentWindow. Doing so makes the iframe's document the
focused element we have to fire text events at. However, in the top
level browsing context, the focused element is still the iframe, so we
have to repeat the keyboard event steps but with the iframe's nested
browsing context instead.
|
|
|
|
|
|
|
|
This doesn't give it any functionality.
|
|
|
|
process_the_iframe_attributes already causes a navigation, so this
would cause a double navigation and blow away any setup that JS may
have done from events fired in process_the_iframe_attributes.
|
|
This was a missing spec step. This prevents it navigating to
about:blank, which will blow away the document and thus any setup that
was done in the iframe load event.
|
|
These are required for hit testing the document in Google Docs. If they
aren't defined, the Google Docs hit test code will add undefined to
certain values, causing them to turn into NaN. This causes NaNs to
propagate through their hit test code, which eventually makes it
infinitely loop.
|
|
|
|
These are currently the same as clientX and clientY, but it works for
now.
|
|
|
|
This makes clicking properly fire focus/blur events alongside setting
the focused element.
|
|
The (un)focus steps have no dependency on HTMLElement, thus we can
extract them into their own file. This allows them to be called
anywhere.
|
|
|
|
|
|
|
|
|
|
Required by Google services, Content-Length should always been sent,
even when there is no body.
|
|
|
|
|
|
|
|
|
|
This patch allows pixelpaint to remember if the histogram or vectorscope
was visible last time the application was used.
|
|
When volume is zero it is not necessary to go through the mixing loop.
The zero-filled buffer can be written directly to the device, instead,
similar to the muted case. Tested by using the piano app and the main
volume control.
|
|
This makes the links on nitter.net clickable, e.g. "preferences" in the
upper right corner.
|
|
This exact same loop is repeated a couple of times.
|
|
|
|
Add some helpers to the TemporaryTrack struct to assist in making future
commits more legible.
|
|
Including the legacy grid-gap, grid-column-gap and grid-row-gap
properties.
|
|
Co-authored-by: TreuKS <ks2225@protonmail.com>
|
|
C++20 can automatically synthesize `operator!=` from `operator==`, so
there is no point in writing such functions by hand if all they do is
call through to `operator==`.
This fixes a compile error with compilers that implement P2468 (Clang
16 currently). This paper restores the C++17 behavior that if both
`T::operator==(U)` and `T::operator!=(U)` exist, `U == T` won't be
rewritten in reverse to call `T::operator==(U)`. Removing `!=` operators
makes the rewriting possible again.
See https://reviews.llvm.org/D134529#3853062
|
|
Previously the s_decomposition_mappings variable would refer to other
data in s_decomposition_mappings_data. This would cause thousands of
avoidable relocations at load time.
This saves about 128kB RAM for each process which uses LibUnicode.
|
|
I also moved the menubar initialization code to VideoPlayerWidget in
order to keep all of the bulk out of main.cpp :)
|
|
|
|
Should use the min_content_height function for calculating the height of
content. Thanks to previous commits, are able to use the width of the
column for this calculation.
|
|
Should use AvailableSpace to get the grid width instead of
box_state.content_width().
This change was imposed on me by the compiler as in a future commit I
will remove the only reference to the available_space parameter.
|
|
As per the spec, it seems that the size of the columns of the grid
should be calculated first, and then the sizes of the rows. This commit
reorders the code for the sizing of the grid to match the spec.
This will be used in a future commit so as to calculate the height of a
row based on the resolved final width of a column.
|
|
Previously were not passing along any information to the children
of the grid, as were simply passing the same AvailableSpace that was
received for the grid itself. Now, each child is given an available
space in accordance with the layout of the grid.
|
|
These two occurrences of verify_cast happened right after a check on the
type of converted reference, making the verify_cast redundant.
|
|
|
|
This is an editorial change to the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/b3f9a1b
|
|
This is an editorial change to the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/46aa5cc
Also add an ECMA-402 spec link to the DefaultTimeZone implementation, as
that definition supersedes ECMA-262.
|
|
This makes the center position the center of the pixel rather than
the top left corner (which fixes some small artifacts on a few
gradients).
This also now floors the angle used to sample from the gradient line,
this avoids the colors diverging the further away from the center you
get (which is noticeable on hard-edge gradients).
|