summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-26PixelPaint: Make wand tool work when layer and image rects differTim Ledbetter
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.
2023-03-25LibPDF: Load replacements for TrueTypeFonts without an embedded fontJulian Offenhäuser
This previously only happened for Type 1 fonts.
2023-03-25LibPDF: Actually return an error when failing to load replacement fontsJulian Offenhäuser
2023-03-25LibPDF: Ask OpenType font programs for glyph widths if neededJulian Offenhäuser
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.
2023-03-25LibPDF: Remove the subroutine length limit for PS1 font programsJulian Offenhäuser
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.
2023-03-25LibPDF: Scale vector paths with the viewJulian Offenhäuser
This ensures that lines have the correct size at every scale factor.
2023-03-25LibPDF: Accept floats as line dash pattern phasesJulian Offenhäuser
2023-03-25LibPDF: Allow the page rotation to be inheritedJulian Offenhäuser
2023-03-25LibPDF: Allow pages with no specified contentsJulian Offenhäuser
The contents object may be omitted as per spec, which will just leave the page blank.
2023-03-25LibPDF: Allow optional inheritable page attributesJulian Offenhäuser
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.
2023-03-25LibPDF: Ignore whitespace in the ASCII hex filterJulian Offenhäuser
The spec tells us that any amount of whitespace may appear between the hex digits and that it should just be ignored.
2023-03-25LibCrypto: Use 8-byte crc32 instruction on arm tooNico Weber
Takes % time Build/lagom/gunzip -c \ /Users/thakis/Downloads/trace_bug.json.gz > /dev/null from 3.9s to 3.87s.
2023-03-25LibCrypto: Start sometimes hardware-accelerating crc32Nico Weber
Takes % time Build/lagom/gunzip -c \ /Users/thakis/Downloads/trace_bug.json.gz > /dev/null from 4s to 3.9s on my MBP.
2023-03-25Meta: Add "gunzip" and "gzip" to lagom buildNico Weber
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.)
2023-03-25LibGUI: Allow blocking modals and popups to handle their own shortcutsLucas CHOLLET
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.
2023-03-25LibGUI: Make `propagate_shortcuts` handle different level of propagationLucas CHOLLET
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.
2023-03-25Base: Add Keyboard Shortcuts & Tips and Tricks man pagesCubic Love
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.
2023-03-25Base: Add keyboard symbols to Katica Regular 12Cubic Love
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
2023-03-25LibGfx/JPEG: More support for scans with a single componentLucas CHOLLET
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.
2023-03-25LibGfx/JPEG: Rename `mb_index` to `macroblock_index`Lucas CHOLLET
2023-03-25LibGfx/JPEG: Log components present in a scanLucas CHOLLET
2023-03-25Meta: Make audio hardware configurable through environment variableJelle Raaijmakers
The new environment variable `SERENITY_AUDIO_HARDWARE` accepts the values `ac97` and `intelhda` (default).
2023-03-25Meta: Use more aptly named variable for PC speaker configurationJelle Raaijmakers
2023-03-25Kernel: Add support for Intel HDAJelle Raaijmakers
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.
2023-03-25Kernel: Mention right parent class for AC'97's `device_name`Jelle Raaijmakers
2023-03-25LibWeb: Add FIXME whining to debug log if layout produces negative sizesAndreas Kling
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. :^)
2023-03-25LibWeb: Don't allow resolved height of abspos elements to become negativeAndreas Kling
We have to clamp the resulting height to 0 when solving for it.
2023-03-25LibWeb: Don't allow resolved width of abspos elements to become negativeAndreas Kling
We have to clamp the resulting width to 0 when solving for it.
2023-03-25LibWeb: Add out-of-flow boxes to anonymous wrapper block when possibleAndreas Kling
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>
2023-03-25headless-browser: Don't print extra newline after layout tree dumpsAndreas Kling
The layout tree dump text already contains a final newline, so we don't need to use outln() and add an extra one.
2023-03-25LibWeb: Don't use image source URL as backup `alt` attributeAndreas Kling
This was a non-standard behavior of ours that broke layout on many pages where an image failed to load for some reason.
2023-03-25LibWeb: Remove now-unused includes from StyleValue.cppSam Atkins
And add them to all the places that relied on getting them transitively.
2023-03-25LibWeb: Split StyleValueList out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split RectStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split UnsetStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split UnresolvedStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split TimeStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split TransformationStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split TextDecorationStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split StringStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split ShadowStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split ResolutionStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split PositionStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split PercentageStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split OverflowStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split NumericStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split ListStyleStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split LengthStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split InitialStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-25LibWeb: Split InheritStyleValue out of StyleValue.{h,cpp}Sam Atkins