Commit graph

27886 commits

Author SHA1 Message Date
Mustafa Quraish
090962823b PixelPaint: Allow selecting a custom aspect ratio for RectangleTool
If you enter a custom aspect ratio, and are not holding down shift,
the rectangle will be constrained to the entered aspect ratio
2021-09-17 11:54:13 +02:00
Mustafa Quraish
6ba3fc559f PixelPaint: Allow selecting a custom aspect ratio for EllipseTool
If you enter a custom aspect ratio, and are not holding down shift,
the bounding rect for the ellipse will be constrained to the entered
aspect ratio
2021-09-17 11:54:13 +02:00
Mustafa Quraish
f14c891ba5 LibGfx+PixelPaint: Add Point::end_point_for_aspect_ratio method
Previously we only had `Point::end_point_for_square_aspect_ratio`,
which was convenient for PixelPaint but assumed the aspect ratio
was always fixed at 1. This patch replaces it with a new mthod that
takes in an arbitrary aspect ratio and computes the end point based
off that.

There's some explicit casting going on in `Point.cpp` to ensure that
the types line up, since we're templating Point based on `T`.`
2021-09-17 11:54:13 +02:00
Brian Gianforcaro
5c244a7893 Meta: Set SERENITY_ARCH if it is not set in debug-kernel.sh
This appears to have regressed recently in commit 783a58dbc.
2021-09-17 09:16:40 +00:00
Eyad Hossam
fe9e2f463c Browser: Remove redundant tab::view() call from the tab constructor 2021-09-17 10:45:37 +03:00
Linus Groh
20337a34a2 LibJS: Convert Instant AOs to ThrowCompletionOr 2021-09-17 08:25:12 +01:00
Linus Groh
ea7cc70118 LibJS: Convert Duration AOs to ThrowCompletionOr 2021-09-17 08:25:12 +01:00
Linus Groh
f8d92232c8 LibJS: Convert Calendar AOs to ThrowCompletionOr 2021-09-17 08:25:12 +01:00
Tim Schumacher
dea43d88e7 Toolchain: Remove breaking mbstate_t define from clang 2021-09-17 00:14:57 +00:00
Liav A
44f5f72add Kernel/Devices: Use try_create_device helper for SB16 2021-09-17 01:02:48 +03:00
Liav A
fd4397a430 Kernel/Devices: Use try_create_device helper for ConsoleDevice 2021-09-17 01:02:48 +03:00
Liav A
5e8dcb9ca7 Kernel/Devices: Move ConsoleDevice into the Devices source directory 2021-09-17 01:02:48 +03:00
Liav A
aee4786d8e Kernel: Introduce the DeviceManagement singleton
This singleton simplifies many aspects that we struggled with before:
1. There's no need to make derived classes of Device expose the
constructor as public anymore. The singleton is a friend of them, so he
can call the constructor. This solves the issue with try_create_device
helper neatly, hopefully for good.
2. Getting a reference of the NullDevice is now being done from this
singleton, which means that NullDevice no longer needs to use its own
singleton, and we can apply the try_create_device helper on it too :)
3. We can now defer registration completely after the Device constructor
which means the Device constructor is merely assigning the major and
minor numbers of the Device, and the try_create_device helper ensures it
calls the after_inserting method immediately after construction. This
creates a great opportunity to make registration more OOM-safe.
2021-09-17 01:02:48 +03:00
Itamar
9aa6dd6b78 Kernel: Unblock tracer process in Process:unblock_waiters()
Since the tracer process may not be our parent process, we need to
explicitly unblock it (instead of the parent) if we are being traced.
2021-09-16 23:47:46 +02:00
Itamar
bb1ad759c5 Kernel: Allow calling sys$waitid on traced, non-child processes
Previously, attempting to call sys$waitid on non-child processes
returned ECHILD.

That prevented debugging non-child processes by attaching to them during
runtime (as opposed to forking and debugging the child, which is what
was previously supported).

We now allow calling sys$waitid on a any process that is being traced
by us, even if it's not our child.
2021-09-16 23:47:46 +02:00
Linus Groh
6b4777c558 LibJS: Convert prepare_temporal_fields() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
9ac426c906 LibJS: Convert to_positive_integer() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
2f56fd48ca LibJS: Convert parse_temporal_year_month_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
14f16d9ed4 LibJS: Convert parse_temporal_time_zone_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
0ccd11ba5f LibJS: Convert parse_temporal_time_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
f86fa12deb LibJS: Convert parse_temporal_duration_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
3c530dec5a LibJS: Convert parse_temporal_date_time_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
4cb6eaf588 LibJS: Convert parse_temporal_date_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
2e28f0b371 LibJS: Convert parse_temporal_calendar_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
4f487266b4 LibJS: Convert parse_temporal_instant_string() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
3112de6f35 LibJS: Convert parse_iso_date_time() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
8792fdfdf6 LibJS: Convert reject_temporal_calendar_type() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
8dd45a1ba2 LibJS: Convert validate_temporal_unit_range() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
448a364210 LibJS: Convert to_smallest_temporal_unit() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
92187591dd LibJS: Convert to_largest_temporal_unit() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
dd483d84f8 LibJS: Convert to_seconds_string_precision() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
f8f074f8a9 LibJS: Convert to_temporal_rounding_increment() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
65d26dd25e LibJS: Convert to_show_calendar_option() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
509d13cf67 LibJS: Convert to_temporal_rounding_mode() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
9f03647f1f LibJS: Convert to_temporal_overflow() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
b1e7e62657 LibJS: Convert get_string_or_number_option() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
8d6ac267dc LibJS: Convert Temporal::get_option() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
08dd1c3e2d LibJS: Convert get_options_object() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
f2b5ddd167 LibJS: Convert iterable_to_list_of_type() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
683e31e1ff LibJS: Convert to_integer_throw_on_infinity() to ThrowCompletionOr 2021-09-16 22:34:24 +01:00
Linus Groh
fea27143e9 LibJS: Initialize value in ThrowCompletionOr<void> default constructor
Otherwise, TRY() will crash when calling release_value() on the empty
m_value Optional.
2021-09-16 22:34:24 +01:00
Ben Wiederhake
5f0f0ac413 crash: Don't test for qemu-unsupported feature
See #10042 for details. In short: qemu doesn't seem to implement that
feature, therefore the test correctly fails. However, that does not help
us, so we skip that test.
2021-09-16 20:51:24 +00:00
Ben Wiederhake
c680ef0a09 crash: Run automatically during CI 2021-09-16 20:51:24 +00:00
Ben Wiederhake
e8d37b7b17 crash: Check whether the msyscall mitigation actually works 2021-09-16 20:51:24 +00:00
Tobias Christiansen
f8ea730f29 LibWeb: Flexbox: Add default value for AlignItems
Previously there was no default value and wrapping broke when the
container didn't have a align-items specified.
2021-09-16 22:51:15 +02:00
Sam Atkins
6c992e5dce LibGfx: Don't try to paint 0px-wide lines
In some cases, we were infinite-looping when asked to paint something
with a thickness of '0', so now every Painter method that takes a
thickness, does a check for a thickness <= 0 and bails early. After all,
you can't draw something that's 0px wide. :^)
2021-09-16 22:30:33 +02:00
Sam Atkins
3964b81d2b LibWeb: Add for CSS fill/stroke/stroke-color properties for SVG
In the spec, `fill` and `stroke` are supposed to be a shorthands for
various properties. But since the spec is still a working draft, and
neither Firefox or Chrome support the `fill-color` or `stroke-color`
properties, we'll stick with `fill` and `stroke` as simple colors for
now.

Also, note that SVG expects things in "user units", and we are assuming
that 1px = 1 user unit for now.
2021-09-16 22:30:33 +02:00
Sam Atkins
2c8c56684b Base: Add CSS styles to SVG test page
SVG is styleable using CSS, so this adds an extra triangle to the page,
which is styled with CSS instead of attributes.
2021-09-16 22:30:33 +02:00
Marcus Nilsson
dc9b18da22 PixelPaint: Implement automatic scrolling in LayerListWidget
The previous implementation of automatic scrolling in LayerListWidget
relied on mousemove events to perform the scrolling, which didn't
produce the expected behavior. Instead use the new auto scroll timer.
2021-09-16 22:29:21 +02:00
Marcus Nilsson
eec411c508 LibGUI: Add a AutoScroll timer to AbstractScrollableWidget
This commit adds a timer to AbstractScrollableWidget that can be used
when implementing automatic scrolling. By overriding
on_automatic_scrolling_timer_fired() we can calculate the scrolling
delta when dragging objects, and redraw as needed. A helper function,
automatic_scroll_delta_from_position() gives us a delta that
we can use to calculate speed and direction. By default
m_autoscroll_threshold is 20 pixels from the edge, and gives a linear
change in scroll delta.
2021-09-16 22:29:21 +02:00