1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 03:08:11 +00:00
Commit graph

10322 commits

Author SHA1 Message Date
Idan Horowitz
38c4693c70 LibJS: Convert the CreateHTML AO to ThrowCompletionOr 2021-10-23 18:01:51 +02:00
Idan Horowitz
0948bd8c1e LibJS: Convert the PadString AO to ThrowCompletionOr 2021-10-23 18:01:51 +02:00
Idan Horowitz
70a35f9600 LibJS: Convert resolve_best_locale to ThrowCompletionOr 2021-10-23 18:01:51 +02:00
Idan Horowitz
28e1e03234 LibJS: Convert StringConstructor functions to ThrowCompletionOr 2021-10-23 18:01:51 +02:00
Andreas Kling
f27d768745 LibGUI: Don't force flush pending paints whenever mouse moves
This patch removes a hack that forced any pending repaints to happen
immediately whenever you moved the mouse over a window.

The purpose of that mechanism was to ensure that quick button presses
still show up visually, and since that is now accomplished via
Widget::repaint(), we no longer need this.
2021-10-23 17:57:05 +02:00
Andreas Kling
d196fbce5b LibGUI: Repaint buttons immediately on mouse up/down events
This ensures that rapidly clicking a button doesn't look like it's
"swallowing" some of the mouse events.

This already worked okay due to a hack in Window, but this will allow us
to get rid of that hack.
2021-10-23 17:54:59 +02:00
Andreas Kling
24651f854c LibGUI: Add Widget::repaint() to force an immediate repaint
In most situations, Widget::update() is preferable, since that allows us
to coalesce repaints and avoid redundant work, reducing system load.

However, there are some cases where you really want a paint to happen
right away, to make sure that the user has a chance to see a short-lived
visual state.
2021-10-23 17:53:11 +02:00
Andreas Kling
da86f4e384 LibGUI: Use move semantics in GUI::MultiPaintEvent 2021-10-23 17:38:38 +02:00
Andreas Kling
877ddaa016 LibWeb: Fix off-by-one in initial containing block overflow calculation
We're using the outermost right and bottom child edges to determine the
width and height of the ICB. However, since these edges are *within* the
respective child's rectangle, we have to add 1 when turning them into
width and height values.

This fixes an issue where scrolling a document would shrink its viewport
rect by 1 pixel (on both axes) on every scroll step.
2021-10-23 16:10:44 +02:00
Andreas Kling
79f2e8ae2a LibGUI: Make exclusive button group act as a single focusable unit
Before this change, using the Tab key would cycle through all the
individual buttons in an exclusive group (e.g radio buttons.)
This felt wrong, since a group of exclusive buttons is really a single
logical input with a limited number of possible choices.

This patch makes such groups behave as a single focusable unit instead,
by dynamically updating the focus policies so that only the currently
checked button is focusable.

We also allow keyboard navigation within the button group via the arrow
keys. This had to be specialized in GUI::AbstractButton, since the
default behavior of arrow keys is to traverse the focus chain.
2021-10-23 16:10:44 +02:00
Andreas Kling
0d8373287c LibGUI: Add GUI::KeyEvent::is_arrow_key() 2021-10-23 16:10:44 +02:00
Andreas Kling
d91732f959 LibGUI: Mark GUI::RadioButton as "checkable"
Any AbstractButton that uses the "checked" state should mark itself
"checkable", this was a weird oversight.
2021-10-23 16:10:44 +02:00
Jean-Baptiste Boric
eaeed259b0 Utilities: Add -f option to ln 2021-10-23 15:06:33 +02:00
Jean-Baptiste Boric
8bbf43318f Utilities: Add ignored -f option to touch 2021-10-23 15:06:33 +02:00
Jean-Baptiste Boric
1b3090bf3c LibCore: Add ignored options to ArgsParser 2021-10-23 15:06:33 +02:00
Jean-Baptiste Boric
68c457b601 LibC: Add definition for FOPEN_MAX 2021-10-23 15:06:33 +02:00
Brendan Coles
1d03f62444 EchoServer: Defer removal of client from clients HashMap
This is necessary to avoid trying to destruct the on_ready_to_read
function from inside the function.
2021-10-23 13:57:42 +02:00
Brendan Coles
f4c181da9d TelnetServer: Defer removal of client from clients HashMap
This is necessary to avoid trying to destruct the on_ready_to_read
function from inside the function.
2021-10-23 13:57:36 +02:00
Sam Atkins
f645ed199e LibWeb: Make CSS ParsingContext's Document* be const
The only reason it wasn't const before (and why we had a const_cast
hack) was to support ImageStyleValue's constructor taking it, which no
longer applies. `hack_count--;` :^)
2021-10-23 11:42:24 +02:00
Sam Atkins
0f393771b7 LibWeb: Move image resource request out of ImageStyleValue constructor
This always felt awkward to me, and required a few other hacks to make
it work. Now, the request is only started when `load_bitmap()` is
called, which we do inside `NodeWithStyle::apply_style()`.
2021-10-23 11:42:24 +02:00
junior rantila
cf3c125e77 watch: Add ability to run command on file change 2021-10-23 11:41:18 +02:00
junior rantila
769091fc1a watch: VERIFY that command vector ends with nullptr 2021-10-23 11:41:18 +02:00
junior rantila
1071e4cf78 watch: Remove unnecessary call to StringBuilder::appendff 2021-10-23 11:41:18 +02:00
junior rantila
658eac5c46 Utilities: Change watch utility to use eastconst style 2021-10-23 11:41:18 +02:00
Linus Groh
dd2655c1fb LibJS: Update Annex B String.prototype extension spec section numbers 2021-10-23 11:38:13 +02:00
Linus Groh
d655a0a42e LibJS: Add "at" to Array.prototype[@@unscopables] 2021-10-23 11:38:13 +02:00
Linus Groh
534fd41fa3 LibJS: Use ECMA-262 spec URLs for .at() (relative indexing, now stage 4) 2021-10-23 11:38:13 +02:00
Linus Groh
5ff7d7945d LibJS: Use ECMA-262 spec URL for Object.hasOwn() (now stage 4) 2021-10-23 11:38:13 +02:00
Linus Groh
60ee542612 LibJS: Mark GetEpochFromISOParts as infallible
This is an editorial change in the Temporal spec.

See: 66ea81b
2021-10-23 01:05:50 +01:00
Idan Horowitz
0f5cfe975f LibJS: Convert ArrayPrototype functions to ThrowCompletionsOr 2021-10-23 02:49:41 +03:00
Idan Horowitz
36446c0bd5 LibJS: Convert the FlattenIntoArray AO to ThrowCompletionOr 2021-10-23 02:49:41 +03:00
Idan Horowitz
953265805e LibJS: Convert array_merge_sort to ThrowCompletionOr 2021-10-23 02:49:41 +03:00
Idan Horowitz
ad318ec123 LibJS: Convert the ArraySpeciesCreate AO to ThrowCompletionOr 2021-10-23 02:49:41 +03:00
Idan Horowitz
36aef8ee95 LibJS: Convert ArrayConstructor functions to ThrowCompletionOr 2021-10-23 02:49:41 +03:00
Idan Horowitz
e26d9f419b LibJS: Remove vm.construct and it's usages 2021-10-23 02:49:41 +03:00
Linus Groh
66770de264 LibJS: Convert Intl.NumberFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Linus Groh
351f0b70bd LibJS: Convert Intl.Locale functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Linus Groh
9fb1d7e18b LibJS: Convert Intl.ListFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Linus Groh
15eadcf023 LibJS: Convert Intl.DisplayNames functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Linus Groh
68df9e4dfb LibJS: Convert Intl.getCanonicalLocales() function to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Tim Schumacher
79bcfa967b LibC: Fix up mblen 2021-10-22 13:28:56 -07:00
Tim Schumacher
8df6955838 LibC: Fix up mbtowc
One more proper implementation and one less FIXME.
2021-10-22 13:28:56 -07:00
Ben Wiederhake
1bc4a0d822 LibGfx: Restrict cleared area to GIF framebuffer
Found by OSS Fuzz, long-standing issue
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34824

The discovered testcase attempts to clear the framebuffer of size
1056x32 from the previous image, which has size 16416x32.
2021-10-22 20:37:27 +01:00
Ben Wiederhake
dad47a3dd1 man.serenityos.org: Use pandoc for listings and landing page
This makes all pages look and feel the same, because they all use the
default CSS generated by pandoc. Also, it inserts the banner everywhere
at the top, not only into the top-level index.html.

Credit to @xSlendiX for suggesting that `-B` works here.
2021-10-22 19:49:28 +03:00
Ben Wiederhake
5c04a2d4b3 man.serenityos.org: Add section descriptions to overview page 2021-10-22 19:49:28 +03:00
Timothy Flynn
857cac6d1d WindowServer: Support displaying window titles when there are no buttons
Currently, if there are not titlebar buttons, we fail to paint the title
because we treat the leftmost titlebar button as the empty rect. We will
now use the rightmost edge of the titlebar when there are no buttons.
2021-10-22 14:46:08 +01:00
Idan Horowitz
db5df26841 LibJS: Convert Array AOs to ThrowCompletionOr 2021-10-22 15:07:04 +03:00
Idan Horowitz
3426285738 LibJS: Convert Locale AOs to ThrowCompletionOr 2021-10-22 15:07:04 +03:00
Andreas Kling
09b08d8e35 WindowServer: Re-evaluate hover state when active window changes
This effectively makes us send a "mouse move" event to windows when they
become active, even if the mouse didn't actually move. By doing this, we
trigger hover/tooltip/etc logic immediately, instead of doing it on the
next 1px mouse movement.

It's a small detail but my goodness does it feel better this way. :^)
2021-10-22 13:22:09 +02:00
Tim Schumacher
89afd4d063 LibC: Implement mbsnrtowcs 2021-10-21 23:57:32 -07:00