Commit graph

38811 commits

Author SHA1 Message Date
Liav A
290eb53cb5 Kernel/SysFS: Stop cluttering the codebase with pieces of SysFS parts
Instead, start to put everything in one place to resemble the directory
structure of the SysFS when actually using it.
2022-06-17 11:01:27 +02:00
SeekingBlues
cba4750921 LibC: Add POSIX spec links to wait, waitpid and waitid 2022-06-17 10:59:26 +02:00
SeekingBlues
4796a25bbd LibC: Make waitpid's return value more POSIX-compliant
* Always return 0 if `WNOHANG` is specified and no waitable child is
  found, even if `wstatus` is null.
* Do not return 0 if the child is continued. Treat it the same way as
  all the other states.

Refer to the RETURN VALUE section of the POSIX spec:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/wait.html
2022-06-17 10:59:26 +02:00
SeekingBlues
8730e56e88 LibC: Add WIFCONTINUED macro
Like other systems, we can encode the continued state with 0xffff in the
status value. This is needed for some ports.
2022-06-17 10:59:26 +02:00
FrHun
5a73bf1553 LibGUI: End Scrollbar gutter tinting when target is reached
Before, when holding at a location in the gutter until the scrubber
reached that location, the gutter would stay tinted, even after the
target was reached, and the scrubber didn't move any more; only
stopping when the pointer was moved.
2022-06-17 09:58:10 +01:00
FrHun
2f388065c8 LibGUI: Fix crash on Scrollbar shift click and re enable jumping
Previously clicking in the gutter of an activated scrollbar while
holding shift would crash on the removed VERIFY.
2022-06-17 09:58:10 +01:00
Tim Schumacher
e29e4e6c1f Ports: Ensure that core.autocrlf is disabled before handling patches
While `core.autocrlf=false` should be the default, there will certainly
be users that have changed the default setting in their global
configuration.

Ensure that the setting is disabled to avoid accidentally mangling or
not applying our patches.
2022-06-17 09:47:57 +01:00
MacDue
c9a70ffff5 LibWeb: Fix 'background-repeat: round' calculation
Previously, this was slightly off and not doing what the spec comment
above asked for. This led to really small values for x_step and
y_step, making the `backgrounds.html' example use crazy amounts of
CPU whist painting.
2022-06-17 09:37:39 +01:00
MacDue
c491ab7523 LibWeb: Only paint the background image on integer steps
This avoids excessive over painting.
2022-06-17 09:37:39 +01:00
Sam Atkins
c4ef4fcd72 LibWeb: Add deprecated image-rendering values
From the spec:

> This property previously accepted the values optimizeSpeed and
  optimizeQuality. These are now deprecated; a user agent must accept
  them as valid values but must treat them as having the same behavior
  as pixelated and smooth respectively, and authors must not use them.

- https://www.w3.org/TR/css-images-3/#the-image-rendering
2022-06-16 17:36:13 +01:00
FrHun
1b4ab8626b LibWeb: Disable unused error on temporarily unused variable from spec 2022-06-16 17:20:49 +01:00
Paweł Łukasik
a0ffdeb58a Keymap: Fix switching selected keymap
Previously keymap did switching of the selected keymap twice when the
command was executed. First set it to the first keymap on the list and
later, if present, to the chosen one.

Currently the switching to the first keymap on the list is done only
when the selection is not present or it's not on the list of keymaps.
2022-06-16 14:58:43 +01:00
Karol Kosek
54687c63af PixelPaint: Add Smooth Pixels scaling option 2022-06-16 14:26:55 +01:00
Karol Kosek
1759d8f34e ImageViewer: Add Smooth Pixels image scaling option 2022-06-16 14:26:55 +01:00
Karol Kosek
ab6288fd3d LibWeb: Use SmoothPixels scaling mode as the pixelated rendering
It's probably not in 1:1 as spec says, as it wants us to first upscale
the image to the nearest integer and then downscale it bilinearly.
But this mode still falls into the general description of the value:

> The image is scaled in a way that preserves the pixelated nature of
> the original as much as possible, but allows minor smoothing instead
> of awkward distortion when necessary.

Also, this way we don't have to allocate the memory just for the integer
scale. :^) :^)
2022-06-16 14:26:55 +01:00
Karol Kosek
3d7838c5fb LibGfx: Implement SmoothPixels scaling mode
If you wanted to upscale an image, you had two options:
- use Nearest Neighbor: it's probably a good choice. The image stays
  sharp.. unless you aren't using integer scales.
- use Bilinear blending, but this on the other hand, doesn't handle
  upscaling well. It just blurs everything.

But what if we could take the best of both of them and make the image
sharp on integers and just blur it a little when needed?

Well, there's Smooth Pixels!

This mode is similar to the Bilinear Blend, with the main difference
is that the blend ratio is multiplied by the current scale, so the blur
on corners can be only 1px wide.

From my testing this mode doesn't handles downscaling as good as the
Bilinear blending though.
2022-06-16 14:26:55 +01:00
Karol Kosek
c409881b5f LibGfx: Pass scaling mode as an enum in do_draw_scaled_bitmap 2022-06-16 14:26:55 +01:00
hhsdev
3f230a638d HackStudio: Add "Open in New Tab" context menu entry
This action creates a new editor tab and opens the selected file in the
newly created tab.
2022-06-16 12:55:14 +01:00
MacDue
68bc742d9e Base: Add <img> tag + border-radius HTML example 2022-06-16 10:28:07 +01:00
MacDue
4d110c39f3 LibWeb: Support using border-radius on <img> tags 2022-06-16 10:28:07 +01:00
MacDue
5b6abfadfd LibWeb: Make PaintableBox::normalized_border_radii_data() protected
This method is needed in subclasses of PaintableBox to do
border-radius clipping.
2022-06-16 10:28:07 +01:00
MacDue
51899751d7 Base: Add background-image + border-radius HTML examples 2022-06-16 10:28:07 +01:00
MacDue
4e8e1492f9 LibWeb: Support using border-radius with a background-image 2022-06-16 10:28:07 +01:00
MacDue
830632407f LibWeb: Add BorderRadiusCornerClipper
This is a helper class for clipping the corners off a element.

This works in a similar way to how (outline) borders are painted.

The steps are:
  1. A small bitmap that fits only the corners is allocated
  2. The corners are painted into the bitmap
  3. The existing pixels (where the corners will be painted)
     are copied using the (inverse) corner bitmap as a mask
     (done before the element is painted)
  4. The element is painted
  5. The areas outside the corner radii are restored

Like with the borders, this only requires allocation on the first
paint.
2022-06-16 10:28:07 +01:00
MacDue
4dfbbd5965 LibWeb: Move border corner bitmap getter/cache to function
This will allow the same bitmap to be shared between border,
background, and various other corner clipping code.
2022-06-16 10:28:07 +01:00
MacDue
81a3ec0692 LibGfx: Add Painter::get_pixel()
This is required to do some painting tricks in LibWeb, this has to be
added to the painter so it can apply the paint translation first.
2022-06-16 10:28:07 +01:00
Xexxa
4f311d1660 Base: Add new font Katica Bold Oblique 10
0020-007E https://www.unicode.org/charts/PDF/U0000.pdf
2022-06-16 08:52:10 +01:00
Xexxa
9383d49641 Base: Add Mathematical Alphanumeric Symbols to font Katica Regular 10
1D522, 1D525, 1D52A, 1D51C, 1D4EA, 1D4F8, 1D4F7, 1D4FC, 1D4FD,
1D516-1D51C
https://www.unicode.org/charts/PDF/U1D400.pdf
2022-06-16 08:52:10 +01:00
Xexxa
52bb037e75 Base: Add 1f785-1F78B, 1F517 to Katica Bold 12
1f785-1F78B https://www.unicode.org/charts/PDF/U1F780.pdf
1F517 https://www.unicode.org/charts/PDF/U1F300.pdf
2022-06-16 08:52:10 +01:00
Xexxa
9740ae41fe Base: Add 2713, 2714 to Katica Bold 10
2713, 2714 https://www.unicode.org/charts/PDF/U2700.pdf
2022-06-16 08:52:10 +01:00
Xexxa
14d7e04cd3 Base: Remove painted parts outside of view in Katica Bold 10
A few glyphs is "cut" with painted part outside of the view.
0023, 0026, 0040, 004B, 004D, 004E, 004F, 0051, 0052, 0057,
006D, 0077
2022-06-16 08:52:10 +01:00
Thomas Fach-Pedersen
626e7a5c7f LibWeb: Test parsing of CSS Level 4 rgb and hsl syntax 2022-06-15 19:10:43 +01:00
Thomas Fach-Pedersen
019e3a342d LibWeb: Parse rgb and hsl functions according to CSS Module Level 4
Implement parsing of rgb(..) and hsl(..) in both the modern level 4
syntax without commas, and the legacy syntax with commas.

The parser accepts non-integer numbers but rounds to integer values
for now.
2022-06-15 19:10:43 +01:00
Thomas Fach-Pedersen
83c79fec1c LibWeb: Fix calculation of degrees from radians 2022-06-15 19:10:43 +01:00
kleines Filmröllchen
1b25513ed7 Kernel: Don't VERIFY that the DMA channel is running on AC'97 interrupt
Fixes #13771; as discussed it's not really a problem to receive an
interrupt while the DMA channel is not running, but we do want to log
it.
2022-06-15 20:53:10 +03:00
Linus Groh
2c647da0b5 LibJS: Mark AddInstant in AddZonedDateTime as fallible
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/8bc0f98
2022-06-15 17:49:20 +01:00
Linus Groh
b2965cf204 LibJS: Fix Instant rounding modes
This is a normative change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/0993b75
2022-06-15 17:49:20 +01:00
Linus Groh
1755d051fd LibJS: Mark two calls as infallible in DifferenceTemporalPlainTime
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/0e4966a
2022-06-15 17:49:20 +01:00
Linus Groh
36ef604905 LibJS: Assume options is an object in the DifferenceZonedDateTime AO
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/a6662f1
2022-06-15 17:49:20 +01:00
Linus Groh
52a4ee563d LibJS: Assume options is an object in the MergeLargestUnitOption AO
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/20a04ac
2022-06-15 17:49:20 +01:00
Linus Groh
569c2dc1d0 LibJS: Adjust order of operations in ISO{Date,MonthDay}FromFields
This is a normative change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/7dd90dc
2022-06-15 17:49:20 +01:00
Linus Groh
3bc54ac75a LibJS: Mark a call of CreateDurationRecord as fallible
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/462f027
2022-06-15 17:49:20 +01:00
Linus Groh
81b9a2e4a1 LibJS: Mark a call of CreateDateDurationRecord as fallible
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/5411f62
2022-06-15 17:49:20 +01:00
Linus Groh
8be4cc9653 LibJS: Make options mandatory in Difference{Zoned,ISO}DateTime
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/d4c4a16
2022-06-15 17:49:20 +01:00
Linus Groh
eaf6f20ed1 LibJS: Move assertion step around in Calendar.prototype.mergeFields
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/f790821
2022-06-15 17:49:20 +01:00
Linus Groh
c0986be2c1 LibJS: Use consistent alias names for object-copy steps
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/6669bad
2022-06-15 17:49:20 +01:00
Linus Groh
e68173b656 LibJS: Update AvailableCalendars AO to reflect spec changes
These are editorial and normative changes in the Temporal spec.

See:
- https://github.com/tc39/proposal-temporal/commit/2c977fc
- https://github.com/tc39/proposal-temporal/commit/3af75ec
- https://github.com/tc39/proposal-temporal/commit/75ea812
- https://github.com/tc39/proposal-temporal/commit/e7be49b
- https://github.com/tc39/proposal-temporal/commit/883e00a
- https://github.com/tc39/proposal-temporal/commit/5b9d76a
2022-06-15 17:49:20 +01:00
Linus Groh
3025f77991 LibJS: Add an explicit operation for merging calendar field names
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/2bd7977
2022-06-15 17:49:20 +01:00
Linus Groh
ee80164ac1 LibJS: Remove unnecessary variable initialization in DifferenceISODate
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/ca1abdc
2022-06-15 17:49:20 +01:00
Linus Groh
fafc9b07c4 LibJS: Mark AO calls creating a copy of built-in objects as infallible
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/536f067
2022-06-15 17:49:20 +01:00