Age | Commit message (Collapse) | Author |
|
Previously, the position of the mask used to calculate the new
selection did not match the position of the active layer. The program
would crash when trying to set a mask pixel outside the bounds of the
active layer.
|
|
This previously only happened for Type 1 fonts.
|
|
|
|
If the font dictionary didn't specify custom glyph widths, we would fall
back to the specified "missing width" (or 0 in most cases!), which meant
that we would draw glyphs on top of each other in a lot of cases, namely
for TrueTypeFonts or standard Type1Fonts with an OpenType fallback.
What we actually want to do in this case is ask the OpenType font for
the correct width.
|
|
A limit of 1024 subroutines seemed like a sensible choice, but some
fonts actually do exceed it. We will now only assert that the specified
amount is positive.
|
|
This ensures that lines have the correct size at every scale factor.
|
|
|
|
|
|
The contents object may be omitted as per spec, which will just leave
the page blank.
|
|
Previously, get_inheritable_object would always try to find the object
and throw an error if it couldn't. The spec tells us that some page
attributes, like CropBox, are optional but also inheritable. Others,
like the media box and resources, are technically required by the spec,
but omitted by some documents.
In both cases, we are now able to search for inheritable objects and
find a suitable replacement if there wasn't one.
|
|
The spec tells us that any amount of whitespace may appear between the
hex digits and that it should just be ignored.
|
|
Takes
% time Build/lagom/gunzip -c \
/Users/thakis/Downloads/trace_bug.json.gz > /dev/null
from 3.9s to 3.87s.
|
|
Takes
% time Build/lagom/gunzip -c \
/Users/thakis/Downloads/trace_bug.json.gz > /dev/null
from 4s to 3.9s on my MBP.
|
|
This makes it easy to compare the performance of Serenity's
deflate implementation to the host system implementation.
On my M1 Max MBP:
% time gunzip -c \
/Users/thakis/Downloads/trace_bug.json.gz > /dev/null
takes between 0.064s and 0.082s.
% time Build/lagom/gunzip -c \
/Users/thakis/Downloads/trace_bug.json.gz > /dev/null
on the other hand takes 4 seconds.
(That .gz file is a 5.8M file -- the largest .gz file that happend to be
in my Downloads folder.)
|
|
Since ef7d9c0, shortcut propagation was blocked for blocking modals and
popups. This however is an issue as some blocking modals (like
FilePicker) use shortcuts. This patch allows propagation of shortcuts
but only until the current window.
|
|
First, this patch renames the function
`propagate_shortcuts_up_to_application` to `propagate_shortcuts`.
Handling those levels, will allow us to differentiate shortcuts at
`Window` level and `Application` level. Which will be convenient to
handle dialog-specific shortcuts.
|
|
Add a list of system and general keyboard shortcuts as well as a list
of tips and tricks to man7 (Miscellanea). Add links to these in the
Help-index to aid discoverability for new users.
|
|
These symbols represent common icons found on a user's keyboard
(PC and Mac). Now it will be possible for these icons to be used in
documentation (if desired) as Katica Regular 12 is used by LibMarkdown/
the Help application. Some bonus symbols have been added where they've
been easy to make along the way.
https://www.unicode.org/charts/PDF/U1F100.pdf
1F130
https://www.unicode.org/charts/PDF/U2190.pdf
2190-2193, 21B7, 21B9, 21DE-21DF, 21E4-21F3
https://www.unicode.org/charts/PDF/U2200.pdf
229E
https://www.unicode.org/charts/PDF/U2300.pdf
2303, 2318, 2324-2327, 232B, 2370, 2380, 2384, 2386, 2388, 238B-238C,
2397-239A, 23CE, 23FB-23FE
https://www.unicode.org/charts/PDF/U2460.pdf
24D8
https://www.unicode.org/charts/PDF/U25A0.pdf
25A4, 25B2-25B3, 25B7, 25BC-25BD, 25C1, 25C6-25C8
https://www.unicode.org/charts/PDF/U2700.pdf
2726-2727, 2732
https://www.unicode.org/charts/PDF/U27F0.pdf
27F3, 27F5-27F7
https://www.unicode.org/charts/PDF/U2B00.pdf
2B58
https://www.unicode.org/charts/PDF/U2900.pdf
2912-2913
|
|
Introduced in 2c98eff, support for non-interleaved scans was not working
for frames with a number of MCU per line or column that is odd. Indeed,
the decoder assumed that they have scans that include a fabricated MCU
like scans with multiple components.
This patch makes the decoder handle images with a number of MCU per line
or column that is odd. To do so, as in the current decoder state we do
not know if components are interleaved at allocation time, we skip over
falsely-created macroblocks when filling them. As stated in 2c98eff,
this is probably not a good solution and a whole refactor will be
welcome.
It also comes with a test that open a square image with a side of 600px,
meaning 75 MCUs.
|
|
|
|
|
|
The new environment variable `SERENITY_AUDIO_HARDWARE` accepts the
values `ac97` and `intelhda` (default).
|
|
|
|
This is an implementation that tries to follow the spec as closely as
possible, and works with Qemu's Intel HDA and some bare metal HDA
controllers out there. Compiling with `INTEL_HDA_DEBUG=on` will provide
a lot of detailed information that could help us getting this to work
on more bare metal controllers as well :^)
Output format is limited to `i16` samples for now.
|
|
|
|
Negative width/height sizes are not allowed in CSS, so if our layout
algorithm resolves something to a negative size, we have boogs.
Instead of crashing or rendering something very wrong, we now clamp the
values to 0 and whine on the debug log so that someone can go and figure
out how we got the negative values in the first place. :^)
|
|
We have to clamp the resulting height to 0 when solving for it.
|
|
We have to clamp the resulting width to 0 when solving for it.
|
|
If the previous sibling of an out-of-flow box has been wrapped in an
anonymous block, we now stuff the out-of-flow box into the anonymous
block as well.
Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
|
|
The layout tree dump text already contains a final newline, so we don't
need to use outln() and add an extra one.
|
|
This was a non-standard behavior of ours that broke layout on many pages
where an image failed to load for some reason.
|
|
And add them to all the places that relied on getting them transitively.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|