1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 14:17:36 +00:00
Commit graph

16875 commits

Author SHA1 Message Date
Andreas Kling
525f472dc5 SystemMonitor: Remove pid-and-tid tuple concept from ProcessModel
This was an old relic from back when thread IDs were per-process
instead of globally unique.
2021-02-16 20:38:49 +01:00
Andreas Kling
5f81babad2 SystemMonitor: Remove some unused cruft in ProcessModel 2021-02-16 20:24:22 +01:00
Andreas Kling
db694491f3 LibGUI: Make Model::data_matches() take Variant by const-reference 2021-02-16 20:08:32 +01:00
Andreas Kling
36354406db Browser: Don't show frame around the web view in full-screen mode
Let's use all the space we have available. :^)
2021-02-16 19:58:46 +01:00
Andreas Kling
5ddf7e993c LibGUI: Add ScrollableWidget to forwarding header 2021-02-16 19:58:43 +01:00
Andreas Kling
4a5ebb89ea Browser: Don't focus the "bookmark" button when clicked 2021-02-16 19:08:09 +01:00
Linus Groh
2a519722a9 Base: Make PixelPaint launch handler for .pp files
Closes #5374.
2021-02-16 19:00:41 +01:00
Andreas Kling
5625a1d608 Lagom: Build LibTextCodec into Lagom 2021-02-16 19:00:02 +01:00
Andreas Kling
096cdf891b Revert "Terminal: Drop "proc" and "exec" pledges after initializing"
This reverts commit dea0d22ab3.

I'm dumb. We need these for utmpupdate, and for "new terminal" :^(

Fixes #5372.
2021-02-16 17:44:40 +01:00
Andreas Kling
085696ea39 LibTTF: Interpret font names from Windows platform as UTF-16BE
This turns the admittedly aesthetic "T a h o m a" into "Tahoma" :^)
2021-02-16 17:32:42 +01:00
Andreas Kling
0538dc4e28 LibTextCodec: Add a simple UTF-16BE decoder 2021-02-16 17:31:22 +01:00
thankyouverycool
01e00bac9d LibGUI: Set correct ranges for hidable scrollbars
Fixes vertical and horizontal overscroll in widgets that allow
unnecessary scrollbars to be hidden.
2021-02-16 17:17:12 +01:00
Andreas Kling
f24287e0e1 LibGfx: Oops, fix misaligned window buttons for WindowType::Normal 2021-02-16 16:57:45 +01:00
Andreas Kling
89c7886d1c Terminal: Turn the "settings" and "find" popups into tool windows :^) 2021-02-16 16:26:29 +01:00
Andreas Kling
11c8596ad3 WindowServer+LibGUI+LibGfx: Add WindowType::ToolWindow
Tool windows are secondary windows with a smaller title bar. The sit on
the layer above normal windows, and cannot be minimized.

These are intended for complex yet non-modal interactions with the
content of a primary window, such as find/replace windows, property
windows, etc.
2021-02-16 16:26:29 +01:00
Nick Vella
15c1f7a40d WindowServer, LibGUI: Variable minimum window sizes
Minimum window size can now be customised and set at runtime via the
SetWindowMinimumSize WindowServer message and the set_minimum_size
LibGUI::Window method. The default minimum size remains at 50x50.

Some behind-the-scenes mechanics had to be added to LibGUI::Window to
ensure that the minimum size is remembered if set before the window is
shown. WindowServer sends a resize event to the client if it requests a
size on create that's smaller than it's minimum size.
2021-02-16 15:46:03 +01:00
Andreas Kling
dea0d22ab3 Terminal: Drop "proc" and "exec" pledges after initializing
We shouldn't need these once we've got the shell process running. :^)
2021-02-16 13:39:03 +01:00
Andreas Kling
57a345a590 LibGfx: Remove debug spam from FontDatabase lookups 2021-02-16 13:12:41 +01:00
Andreas Kling
575c7ed414 Kernel: Make sys$msyscall() EFAULT on non-user address
Fixes #5361.
2021-02-16 11:32:00 +01:00
AnotherTest
e438dd3c9b LibC: Teach scanf how to read "%lu" and "%llu" (unsigned long{, long})
This makes the gcc port work again.
2021-02-16 10:38:52 +01:00
Andreas Kling
2323b6fb74 LibWeb: Use the correct DOM node when moving text cursor with mouse
We should use the DOM node returned by the TextCursor hit test,
and not the one we got from the earlier Exact hit test.
2021-02-15 23:25:29 +01:00
Tom
a0e558ce89 CatDog: Set window hit testing to opaque pixels only 2021-02-15 23:07:49 +01:00
Tom
d590e0c946 WindowServer: Add support for alpha channel based hit testing
This enables implementing non-rectangular window shapes, including
non-rectangular window frames.
2021-02-15 23:07:49 +01:00
Ben Wiederhake
b3f0a5c917 LibC: Fix typo in comment 2021-02-15 22:09:01 +01:00
Ben Wiederhake
cf0d4994c2 LibC+LibPthread: Permit partial pthread_atfork
POSIX explicitly allows providing nullptr's, and our __pthread_*() implementation
stores and calls the provided functions as-is, without checking for nullptr.
2021-02-15 22:09:01 +01:00
Ben Wiederhake
fbb85f9b2f Kernel: Refuse excessively long iovec list, also in readv
This bug is a good example why copy-paste code should eventually be eliminated
from the code base: Apparently the code was copied from read.cpp before
c6027ed7cc, so the same bug got introduced here.

To recap: A malicious program can ask the Kernel to prepare sys-ing to
a huge amount of iovecs. The Kernel must first copy all the vector locations
into 'vecs', and before that allocates an arbitrary amount of memory:
    vecs.resize(iov_count);
This can cause Kernel memory exhaustion, triggered by any malicious userland
program.
2021-02-15 22:09:01 +01:00
Andreas Kling
fc2a4511ec LibVT: Clean up TerminalWidget a bit, removing unused cruft 2021-02-15 19:58:47 +01:00
Jean-Baptiste Boric
d9aaa8afe9 LibGUI: Open context menu on 'Menu' key down 2021-02-15 19:37:14 +01:00
Jean-Baptiste Boric
0d22ec9d32 Kernel: Handle 'Menu' key on PS/2 keyboard 2021-02-15 19:37:14 +01:00
Jean-Baptiste Boric
e616cb35ba WindowManager: Fix default menu item on key down
This fixes the key down behavior on Terminal's Edit menu, which tried
to hover the disabled menu item Copy if there was nothing selected.
2021-02-15 19:37:14 +01:00
Jean-Baptiste Boric
f8cb068354 WindowManager: Select top-level menus with left/right keys 2021-02-15 19:37:14 +01:00
Jean-Baptiste Boric
7ee6c66ee9 WindowManager: Make the Logo key open the system menu 2021-02-15 19:37:14 +01:00
Andreas Kling
c51209a06a LibWeb: Move cursor along when drag-selecting in editable content 2021-02-15 18:12:14 +01:00
Andreas Kling
7f616449ec LibGUI: Make TextEditor write a trailing newline to non-empty files
Fixes #4801.
2021-02-15 18:02:33 +01:00
Andreas Kling
a048f46be5 LibGUI: Use a ScopeGuard to close the fd in TextEditor::write_to_file() 2021-02-15 17:48:38 +01:00
Andreas Kling
015c5e61a8 LibGUI: Fix bogus TextEditor selection when cursor dragged outside view
If the cursor Y position is < 0 in content coordinate space, we should
always map that to the first line of the file.

This fixes unexpected cursor behavior when dragging the selection above
the top of the document.
2021-02-15 17:34:40 +01:00
AnotherTest
8bc1bcb34b LibC: Reimplement scanf from the ground up
This adds support for some previously unsupported features
(e.g. length modifiers) and fixes at least one FIXME.
Fixes #90.
2021-02-15 17:32:56 +01:00
AnotherTest
0bf496f864 LibC: Make strtoull accept the '0x' prefix when base 16 is specified
Dr.POSIX says it should be.
2021-02-15 17:32:56 +01:00
AnotherTest
5729e76c7d Meta: Make it possible to (somewhat) build the system inside Serenity
This removes some hard references to the toolchain, some unnecessary
uses of an external install command, and disables a -Werror flag (for
the time being) - only if run inside serenity.

With this, we can build and link the kernel :^)
2021-02-15 17:32:56 +01:00
AnotherTest
80d6f46d4e Ports: Add a cmake port
Yes, you build this *inside* serenity.
2021-02-15 17:32:56 +01:00
AnotherTest
bb777459a0 LibC+LibPthread: Implement pthread_atfork()
This required a bit of rearchitecture, as pthread_atfork() required a
mutex, and duplicating a mutex impl for it was silly.
As such, this patch moves some standalone bits of pthread into LibC and
uses those to implement atfork().
It should be noted that for programs that don't use atfork(), this
mechanism only costs two atomic loads (as opposed to the normal mutex
lock+unlock) :^)
2021-02-15 17:32:56 +01:00
AnotherTest
8e074f8665 LibC+LibPthread: Implement pthread_rwlock_*
This implementation is pretty damn dumb, and probably has more bugs than
features.
But for the time being, it seems to work. however, we should definitely
replace it with a good implementation sometime very soon :^)
2021-02-15 17:32:56 +01:00
AnotherTest
2e50c232f7 LibPthread: Stub out pthread_atfork() 2021-02-15 17:32:56 +01:00
AnotherTest
26a8a84ded LibC+LibPthread: Stub out pthread_rwlock_* functions 2021-02-15 17:32:56 +01:00
AnotherTest
9e2c37a8b2 LibC: Add 'cfmakeraw()' 2021-02-15 17:32:56 +01:00
AnotherTest
0c07c005b5 LibC: Stub out some addrinfo things 2021-02-15 17:32:56 +01:00
AnotherTest
4519950266 Kernel+LibC: Add the _SC_GETPW_R_SIZE_MAX sysconf enum
It just returns 4096 :P
2021-02-15 17:32:56 +01:00
AnotherTest
71054c4c06 LibC: Add reentrant versions of getpw{uid,nam}
Pretty hacky, but it should be fine.
2021-02-15 17:32:56 +01:00
AnotherTest
a3a7ab83c4 Kernel+LibC: Implement readv
We already had writev, so let's just add readv too.
2021-02-15 17:32:56 +01:00
AnotherTest
1e79c04616 Kernel+LibC: Stub out SO_{SND_RCV}BUF 2021-02-15 17:32:56 +01:00