Commit graph

24774 commits

Author SHA1 Message Date
Linus Groh a8dd1b9480 LibJS: Implement Temporal.PlainTime.prototype.calendar 2021-07-28 21:57:30 +01:00
Linus Groh ad89a205bc LibJS: Implement Temporal.PlainTime.prototype.valueOf() 2021-07-28 21:57:30 +01:00
Linus Groh 64b44c7f30 LibJS: Implement Temporal.PlainTime.prototype[@@toStringTag] 2021-07-28 21:57:30 +01:00
Linus Groh ae4bf8fc32 LibJS: Start implementing Temporal.PlainTime
This commit adds the PlainTime object itself, its constructor and
prototype (currently empty), and the CreateTemporalTime abstract
operation.
2021-07-28 21:57:30 +01:00
Linus Groh 321f2c0927 LibJS: Fix types of PlainDateTime iso_{milli,micro,nano}second params
999 does not fit into an u8. :^)
2021-07-28 21:57:30 +01:00
Linus Groh 2ba338869b LibJS/Tests: Remove two leftover console.log() calls 2021-07-28 21:57:30 +01:00
Linus Groh d84fd3ad5c LibJS: Reflect infallibility editorial change in ToTemporalCalendar
See: https://github.com/tc39/proposal-temporal/commit/3437106
2021-07-28 21:57:30 +01:00
Luke 0a8209ab81 Ports: Add MPC
Required to build the toolchain inside Serenity.
2021-07-28 21:55:00 +02:00
Luke 36af58c187 Ports: Add MPFR
Required to build the toolchain inside Serenity.
2021-07-28 21:55:00 +02:00
Luke 6fe8d1da97 Ports: Add more spacing for the name column in AvailablePorts.md 2021-07-28 21:55:00 +02:00
Andreas Kling 2135c66823 Revert "LibGUI: Only dispatch Leave if the now-hovered widget isn't a child"
This reverts commit cfc9ee6f16.

This change was wrong: The parent *does* lose hover when the mouse
cursor enters a child widget. Hover is not hierarchical, there is only a
hovered window and a hovered widget within that window.

This fixes an issue with GUI::TabWidget buttons appearing hovered
despite the mouse cursor not being over the buttons.
2021-07-28 21:28:56 +02:00
Andreas Kling 230f7ce71c Revert "LibGUI: Ignore the Enter event by default"
This reverts commit a5a32fbcce.

This change was wrong: it's fine for a child widget to receive an enter
event despite its parent never getting one. Only the widget directly
under the mouse cursor is considered hovered for enter/leave purposes.
2021-07-28 21:28:56 +02:00
Gunnar Beutner 5df8c274bb Toolchain+Ports: Fix building ports on x86_64
Fixes #8377.
2021-07-28 21:28:31 +02:00
Gunnar Beutner a11070ab15 Ports: Update GCC to version 11.2.0 2021-07-28 21:28:31 +02:00
Gunnar Beutner 9c431ae7ef Toolchain: Update GCC to version 11.2.0 2021-07-28 21:28:31 +02:00
Gunnar Beutner f7d772282d Ports: Use SHA256 to verify file integrity for binutils
There's no point in using a keyring file we just downloaded from the
same file mirror to verify the authenticity of the binutils tarball.

If someone were to compromise the file mirror they could just as easily
replace the keyring file and we'd happily tell the user that their copy
of binutils is genuine.
2021-07-28 21:28:31 +02:00
Gunnar Beutner edce9153af Ports: Update binutils to version 2.37 2021-07-28 21:28:31 +02:00
Gunnar Beutner cfeffbe524 Toolchain: Update binutils to version 2.37 2021-07-28 21:28:31 +02:00
Andreas Kling b807f1c3fc Kernel: Fail madvise() volatile change with EINVAL for non-purgeable mem
AnonymousVMObject::set_volatile() assumes that nobody ever calls it on
non-purgeable objects, so let's make sure we don't do that.

Also return EINVAL instead of EPERM for non-anonymous VM objects so the
error codes match.
2021-07-28 20:42:49 +02:00
Andreas Kling 410b3c85b6 LibGUI+LibGfx: Highlight currently active tab button with accent color
Use the new "Accent" color role to emphasize the currently active tab
within a GUI::TabWidget. :^)
2021-07-28 20:25:14 +02:00
Andreas Kling 9826d616dd LibGUI: Update windows when they become active/inactive
Since interfaces may look different depending on the window active state
we need to update them when it changes.
2021-07-28 20:25:14 +02:00
Andreas Kling 4dff72fbf7 HackStudio: Tweak splitter spacings in the main UI
The splitters all felt a little bit too small and hard-to-grab.
This patch puts a little more fat on them.
2021-07-28 20:24:56 +02:00
Andreas Kling e378587c82 LibGfx+Base: Add a themable "Accent" color role
This can be used by GUI widgets to draw attention to a specific part of
the widget, for example the currently active sub-widget component.
2021-07-28 20:21:52 +02:00
Andreas Kling 03cca20699 LibGfx: Remove unused StylePainter::paint_surface() 2021-07-28 19:13:08 +02:00
LuK1337 a50b937632 ThemeEditor: Initialize color input to Gfx::ColorRole::Window 2021-07-28 19:07:15 +02:00
Brian Gianforcaro ddc950ce42 Kernel: Avoid file descriptor leak in Process::sys$socketpair on error
Previously it was possible to leak the file descriptor if we error out
after allocating the first descriptor. Now we perform both fd
allocations back to back so we can handle the potential error when
processing the second fd allocation.
2021-07-28 19:07:00 +02:00
Brian Gianforcaro 4b2651ddab Kernel: Track allocated FileDescriptionAndFlag elements in each Process
The way the Process::FileDescriptions::allocate() API works today means
that two callers who allocate back to back without associating a
FileDescription with the allocated FD, will receive the same FD and thus
one will stomp over the other.

Naively tracking which FileDescriptions are allocated and moving onto
the next would introduce other bugs however, as now if you "allocate"
a fd and then return early further down the control flow of the syscall
you would leak that fd.

This change modifies this behavior by tracking which descriptions are
allocated and then having an RAII type to "deallocate" the fd if the
association is not setup the end of it's scope.
2021-07-28 19:07:00 +02:00
Brian Gianforcaro ba03b6ad02 Kernel: Make Process::FileDescriptions::allocate return KResultOr<int>
Modernize more error checking by utilizing KResultOr.
2021-07-28 19:07:00 +02:00
Brian Gianforcaro d2cee9cbf6 Kernel: Remove unused fd allocation from Process::sys$connect(..) 2021-07-28 19:07:00 +02:00
Gunnar Beutner 9252addf55 Ports: Make libxml2 work when Python is installed
Building libxml2 fails when Python was previously installed.
2021-07-28 19:02:41 +02:00
Andreas Kling 07141434e0 Kernel/ProcFS: Make various things superuser-only once again
File and directory permissions regressed with the recent ProcFS changes.
This patch restores the superuser-only permissions where appropriate.
2021-07-28 18:59:53 +02:00
Andreas Kling 58f62cd1d0 Kernel/ProcFS: Add S_IFREG bit to regular files in /proc
Regular files should have regular file mode.
2021-07-28 18:55:38 +02:00
ovf 898b8ffcb6 LibWeb: Avoid assertion failure on parsing numeric character references 2021-07-28 18:32:22 +02:00
LuK1337 5fe3cc3b85 WindowServer: Don't draw separator between pin window & close for modals
Modal windows cannot be pinned and thus we end up drawing 2 separators.
2021-07-28 18:32:06 +02:00
Karol Kosek 2ded2a8b15 SpaceAnalyzer: Adjust the text_rect
The text_rect was moved to the bottom right instead of being shrinked,
which meant that the text at the end could go a bit out of the box.
2021-07-28 16:01:51 +02:00
LuK1337 3bbab9eb47 LibGUI: Align FilePickerDialog's common locations with file list view 2021-07-28 11:15:48 +02:00
Luke 3ec4ad8a73 LibGUI: Convert indexes to size_t and use Optional in TabWidget
Previously it was using int for indexes and using the -1 magic value.
Supersedes b9d51b8601
2021-07-28 11:03:27 +02:00
Luke b9d51b8601 LibGUI: Always reset pressed close button index on mouse up in TabWidget
Previously it would only do this if the mouse was over the close 
button.

If you released the mouse outside the close button, the close button
would appear permanently depressed afterwards.
2021-07-28 01:43:51 +02:00
Andreas Kling b3d27c2340 LibGUI: Add GUI_HOVER_DEBUG runtime debugging flag (environment)
You can now see the outline of GUI widgets when hovering them.
For example:

    $ export GUI_HOVER_DEBUG=1
    $ FileManager

Then move the mouse around in the file manager. :^)
2021-07-28 01:01:02 +02:00
Andreas Kling 3d4f93cf8d LibGUI: Make Label padding work with left/right aligned text
The previous text_rect() algorithm only produced the right result for
horizontally centered labels.

This adds some missing padding to GUI::Statusbar which we've apparently
needed for some time. :^)
2021-07-28 00:10:56 +02:00
TheFightingCatfish 0c53c2dfa2 LibGUI: Add a ClipboardClient for GUI::Clipboard
Anyone who inherits from `GUI::Clipboard::ClipboardClient` will receive
clipboard notifications via `clipboard_content_did_change()`.

Update ClipboardHistoryModel, TextEditor and TerminalWidget to inherit
from this class.
2021-07-27 23:49:25 +02:00
K-Adam 95f393ebcd LibWeb: Return null if an unknown canvas context type is requested 2021-07-27 23:48:23 +02:00
sin-ack 7f1677d574 LibGfx: Take the glyph spacing into account when building a line
Without this, a word might be added to a line despite going outside the
rect, due to the glyph spacing between blocks not being considered.
2021-07-27 23:47:00 +02:00
sin-ack 89d5797705 LibGfx: Remove extra space considered during wrapping
This was previously required because the whitespace was consumed and
manually added back after the fact, but now that we preserve whitespace,
this breaks wrapping of text with whitespace after it.
2021-07-27 23:47:00 +02:00
Karol Kosek 220dd28b02 Meta: Ignore everything after the git cut line in a lint-commit.sh hook
I have set up a commit.verbose variable in my git config,
which shows the patch diff on bottom of the commit message.

Unfortunately the character limit was also applied to the diff,
which meant that I got a false-positive lint error almost every time.
2021-07-27 22:35:49 +01:00
Timothy Flynn 2f8eb4f068 LibJS: Implement non-ECMA-402 String.prototype.toLocale{Lower,Upper}Case
In implementations without ECMA-402, these methods are to behave like
their non-locale equivalents.
2021-07-27 22:35:24 +01:00
Linus Groh 358356758a Documentation: Add preferred coding style options to CLion configuration 2021-07-27 22:49:41 +02:00
FrHun 55c0307288 Calculator: Improve UI margin consistency 2021-07-27 22:17:23 +02:00
FrHun 411622148a Run: Improve UI consistency 2021-07-27 22:17:23 +02:00
FrHun 033c14e574 FontEditor: Fix minor margin inconsistency 2021-07-27 22:17:23 +02:00