Commit graph

48274 commits

Author SHA1 Message Date
Tim Schumacher e62183f0ba AK: Add a Stream wrapper that counts read bytes 2023-03-21 10:25:13 +01:00
Tim Schumacher d1f6a28ffd AK: Move ConstrainedStream from LibWasm and limit discarding 2023-03-21 10:25:13 +01:00
Caoimhe 92800cff4a Presenter: Add a "Resize to Fit Content" action
When resizing, it can be hard to get the content to appear nicely
without a black border where the window's aspect ratio doesn't match the
content's aspect ratio.

With this new action, it is possible to automatically adjust the
window's size to match the content's aspect ratio. When it is resizing,
it will maintain the width of the window, but adjust the height to match
the aspect ratio of the content.
2023-03-21 10:10:29 +01:00
Caoimhe 72a45799e0 Presenter: Add a "View" menu
It didn't really make sense for "Toggle Full Screen" to be under
"Presentation", and now there's a place for any future view-related
actions.
2023-03-21 10:10:29 +01:00
Caoimhe f2df495970 Presenter: Change "Full Screen" action to "Toggle Full Screen"
When using its keybind, it didn't really feel right to press Shift+F5 to
enter fullscreen, but not to exit it!
2023-03-21 10:10:29 +01:00
implicitfield 1eb6484ebd DisplaySettings: Detect if a non-default color scheme is in use 2023-03-21 10:06:41 +01:00
implicitfield 44b67db7ab DisplaySettings: Stop using DeprecatedString
This also further improves error propagation in cases where String
demands it.
2023-03-21 10:06:41 +01:00
implicitfield c9ad252e33 LibGUI: Make Desktop::set_wallpaper accept an Optional<StringView> 2023-03-21 10:06:41 +01:00
implicitfield 9f2a396c6e DisplaySettings: Propagate errors in MonitorWidget 2023-03-21 10:06:41 +01:00
implicitfield f1d1517414 DisplaySettings: Propagate errors in MonitorSettingsWidget 2023-03-21 10:06:41 +01:00
implicitfield 682bff4c49 DisplaySettings: Propagate errors in FontSettingsWidget 2023-03-21 10:06:41 +01:00
implicitfield 00be9eb210 DisplaySettings: Propagate errors in EffectsSettingsWidget 2023-03-21 10:06:41 +01:00
implicitfield 1c20cf7bee DisplaySettings: Propagate errors in BackgroundSettingsWidget 2023-03-21 10:06:41 +01:00
implicitfield c95ec6092b DisplaySettings: Propagate errors in DesktopSettingsWidget 2023-03-21 10:06:41 +01:00
implicitfield 9c7dfd4fd4 DisplaySettings: Propagate errors in ThemesSettingsWidget 2023-03-21 10:06:41 +01:00
LukasACH 83eca15e51 LibGfx/OpenType: Extend support for GPOS glyph positioning
This patch extends the kerning support using the GPOS table to fonts
which use PairPosFormat1. Previously, only PairPosFormat2 was
supported.
2023-03-21 09:50:27 +01:00
Junior Rantila f0ceaca2f4 VideoPlayer: Add drag and drop support
This patch makes it so that we view clips by dropping them on an open
VideoPlayer window.
2023-03-21 08:45:58 +00:00
Simon Wanner 03c225b023 LibWeb: Move Element.prototype.style to ElementCSSInlineStyle mixin
Also adds the `PutForwards` extended attribute allowing setting the
style property.
2023-03-20 20:37:40 -04:00
Simon Wanner 63ca149be5 LibWeb: Make [PutForwards] work together with [ImplementedAs] 2023-03-20 20:37:40 -04:00
Tim Ledbetter d5c913082b Tests: Add tests to verify alpha values are premultiplied when scaling 2023-03-21 00:29:33 +01:00
Tim Ledbetter 5a6b995444 LibGfx: Use premultiplied alpha when scaling images
This commit replaces usages of `Color::interpolate()` with
`Color::mixed_with()` in image scaling functions. The latter
uses premultiplied alpha, which results in more visually
pleasing edges when images are scaled against a transparent
background.

These changes affect the SmoothPixels and BilinearBlend scaling modes
of `Painter::draw_scaled_bitmap()` as well as the `Bitmap::scaled()`
function.

Fixes #17153.
2023-03-21 00:29:33 +01:00
Michiel 2480b94ae7 LibWeb: Support more length types in SVG width/height attributes
Previously we were using the HTML parse_dimension_value method for the
height and width attributes of an SVG element. These attributes should
however be treated as css properties instead and thus also support
calc() and absolute units so we use the css parser for this instead.
2023-03-20 23:45:01 +01:00
Ali Mohammad Pur e312d6530b LibLine: Unify the is-empty flag in Style::unify_with() as well
Not doing so can make the final unified state incorrectly marked as
empty, and will make LibLine ignore the style.
2023-03-20 23:25:21 +01:00
Andreas Kling a6d1307aa4 LibWeb: Don't crash on HTML input element with display: inline
This would previously assert in InlineFormattingContext because we had
an outwardly inline box that wasn't inwardly flow.

Fix this by converting text-based input boxes to inline-blocks. This is
an ad-hoc solution, and there might be a much better way to solve it.
2023-03-20 17:57:58 +01:00
Andreas Kling 00999a245c LibWeb: Let FormattingContext decide the automatic width of its root
Instead of special-casing FlexFormattingContext in the intrinsic sizing
layout helpers, add FormattingContext::automatic_content_width() and let
each context subclass decide what that means.

No behavior change here, just moving this responsibility.
2023-03-20 17:57:58 +01:00
Timothy Flynn e945994877 LibJS: Update spec numbers / text for the Change Array by Copy proposal
This proposal has been merged into the main ECMA-262 spec. See:
https://github.com/tc39/ecma262/commit/4a32716

Note this includes some editorial changes made when the proposal was
merged into the main spec, but are not in the proposal spec.
2023-03-20 16:33:16 +00:00
Ryan Liptak f794b08548 Base: Add 7 new emojis
⚰ U+26B0 - Coffin
🏧 U+1F3E7 - ATM Sign
🛁 U+1F6C1 - Bathtub
🍠 U+1F360 - Roasted Sweet Potato
🍢 U+1F362 - Oden
🎙 U+1F399 - Studio Microphone
💅 U+1F485 - Nail Polish
2023-03-20 15:32:59 +00:00
Srikavin Ramkumar 3c49e24977 LibWeb: Scale checkbox image instead of repeating on large checkboxes 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar def08bcfcf LibWeb: Add indeterminate checkbox styling to useragent stylesheet 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar c3d6709a9e LibWeb: Implement selector matching for :indeterminate pseudo-class 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar d177d83b44 LibWeb: Implement indeterminate IDL attribute in HTMLInputElement 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar aad4051885 LibWeb: Match selected option elements with checked pseudo-class 2023-03-20 10:15:58 +00:00
Tim Schumacher df30fd6232 tar: Add partial support for LZMA-compressed archives 2023-03-20 12:15:38 +02:00
Tim Schumacher 391485ccef Tests: Add LZMA test files from the LZMA specification 2023-03-20 12:15:38 +02:00
Tim Schumacher 123e9fa5d0 Lagom: Add a fuzzer for LZMA decompression 2023-03-20 12:15:38 +02:00
Tim Schumacher 858c44ae1b Utilities: Add an lzcat utility 2023-03-20 12:15:38 +02:00
Tim Schumacher b3a9729e23 LibCompress: Add support for LZMA streams 2023-03-20 12:15:38 +02:00
Sam Atkins 5c4ffbcb46 GMLPlayground: Let WindowServer handle the title's modification symbol 2023-03-20 09:06:12 +00:00
Sam Atkins 1fba3640cb GMLPlayground: Add list of recent files to the File menu 2023-03-20 09:06:12 +00:00
Sam Atkins d0730c1c75 TextEditor: Remove confirmation when opening from recent files list
If the user has clicked to open a recent file, we don't need to ask them
again if they want to open it.
2023-03-20 09:04:38 +00:00
Tim Schumacher fb0fd85e97 Meta: Don't install CA certificates during a on-Serenity build
`SERENITYOS` is also set when compiling Lagom on SerenityOS, so we can't
just check it and expect `CMAKE_STAGING_PREFIX` to be set.

Instead, check `CMAKE_STAGING_PREFIX` directly and use that as an
indicator for whether we can install a file there.
2023-03-20 09:33:30 +01:00
Tim Schumacher f7dc4396c8 grep: Remove a leftover debug line 2023-03-20 09:33:30 +01:00
Tim Schumacher cda4034b46 LibCrypt: Start installing headers again
This was accidentally broken in
ac40197047, after which we started
installing headers into a `LibCrypt` subdirectory instead.

`serenity_install_headers("")` is really the only thing that we need
from `serenity_libc`, so just replicate that manually.
2023-03-20 09:33:30 +01:00
Sam Atkins 5708a47157 Snake: Implement image-based skins
Co-authored-by: HawDevelopment <hawdevelopment@gmail.com>
2023-03-20 09:29:30 +01:00
Sam Atkins da7c883dfa Snake: Move geometry types into Geometry.h and add Direction enum 2023-03-20 09:29:30 +01:00
Sam Atkins 3ce87ea5f9 Snake: Remember if game was paused when picking color
If we were paused before, don't start the game after closing the dialog.
2023-03-20 09:29:30 +01:00
Aliaksandr Kalenik 4f496e97fe LibWeb: Add keep-alive in response headers if it present in request
This fix addresses issue where, if request headers contain
"Connection: keep-alive", we keep socket open without letting client
know that we support keep-alive connections. This can result in a
large number of open and unused sockets.
2023-03-19 22:31:59 -04:00
Andrew Kaster 5b5a76eadd CI: Add "set -e" to Azure DevOps scripts
Without setting this explicitly in every script, failing script lines in
multiline scripts will not fail the job themselves.
2023-03-19 14:31:10 -06:00
Andrew Kaster 958f9e960d Fuzzers: Use correct type name in FuzzilliJs fuzzer 2023-03-19 14:31:10 -06:00
Elisée Maurer 38a3e28799 LibWeb: Stub out a few form validation and selection methods 2023-03-19 18:58:50 +00:00