Age | Commit message (Collapse) | Author |
|
It was wrongly inheriting from RefCounted<AudioServer> without using
reference counting. Let's just make it a CObject instead.
|
|
|
|
We were already doing this anyway, with ~GWindow() calling delete on
the main widget.
|
|
Inspecting a "TextEditor" process with Inspector now looks awesome. :^)
|
|
|
|
|
|
|
|
The Inspector app quickly exposes crappy flat object hiearchies without
parent/child relationships. This is one of many commits that improves
the situation by making parent/child CObject relationships explicit.
|
|
Instead of using a weird "internal owner" pointer, just set the owning
object as the CObject::parent of WSWindow.
|
|
This makes GTreeView paint the tree lines correctly. It's a bit weird
that this is needed, but straightforward to implement so meh.
|
|
Behold, my finest "1990's OOP cube icon" :^)
|
|
Here comes the foundation for a neat remote debugging tool.
Right now, it connects to a remote process's CEventLoop RPC socket and
retreives the remote object graph JSON dump. The remote object graph
is then reconstructed and exposed through a GModel subclass, which is
then displayed in a GTreeView.
It's pretty cool, I think. :^)
|
|
Previously it was only possible to have a single root-level item in a
GTreeView. This was an oversight and I didn't realize it because this
code was only ever used in the FileManager, which has one root ("/").
Also factored out item toggling into a separate function, and increase
the base indentation level so that root items can be toggled as well.
Finally, let the user toggle the selected item with the spacebar. :^)
|
|
This is just for convenience really. It lets you skip const_casting in
all the code that calls this API, which you would basically always be
doing otherwise.
|
|
|
|
..and add vertical box properties to the layout tree dumps.
|
|
Also add horizontal box values to the layout tree dump.
|
|
|
|
This implements a very basic VGA device using the information provided
to us by the bootloader in the multiboot header. This allows Serenity to
boot to the desktop on basically any halfway modern system.
|
|
The main changes are twofold:
* Buffer flipping is now controlled by the m_screen_can_set_buffer flag
in WSCompositor. This flag, in turn, is impacted by m_can_set_buffer
flag, in WSScreen. m_can_set_buffer is set in the WSScreen constructor
by checking the return value of fb_set_buffer. If the framebuffer
supports this operation, it will succeed, and we record this fact. This
information is then used by WSCompositor to set its own
m_screen_can_set_buffer flag.
* WSScreen now only requests a resolution change of the framebuffer. The
driver itself is ultimately responsible for what resolution or mode is
actually set, so WSScreen has to read the response from that request,
and has no choice but to accept the answer. This allows the driver to
choose a "close enough" value to what was requested, or simply ignore
it.
The result of this is that there is no special configuration necessary
for WindowServer to work with reduced-capability framebuffer devices.
|
|
This also hides some functions that were previously public, since that
same functionality is now exposed via ioctl functions.
|
|
|
|
|
|
|
|
|
|
We were not writing anything out to the `endptr` pointer if a number
was successfully parsed from the input string.
Fixes #460.
|
|
|
|
This broke with the recent changes to make printf hex fields behave
a bit more correctly.
|
|
It turns out that the `SenseInterrupt` command is actually
very important! The system hangs if it's not there! Whoops...!
|
|
If the table was scrolled somewhat, we'd stop showing the resize cursor
when hovering the mouse cursor between two table column headers.
|
|
We should still select the entire row when you click between two cells.
|
|
It was previously possible to unmount a filesystem mounted on /mnt by
doing e.g "umount /mnt/some/path".
|
|
tty0 receives input while WindowServer is up, which meant that having
a shell on tty0 would cause commands typed into Terminal to run twice,
once in Terminal's shell, and once on the tty0 shell.
Long term we shouldn't send input to any VirtualConsole while the
WindowServer is up, so this just fixes the immediate weirdness. :^)
|
|
|
|
|
|
|
|
This new version can do three things:
* When invoked as `mount`, it will print out a list of mounted filesystem,
* When invoked as `mount -a`, it will try to mount filesystems
listed in /etc/fstab,
* When invoked as `mount device mountpoint -t fstype`, it will mount that
device on that mountpoint. If not specified, fstype defaults to ext2.
|
|
|
|
This is a simple convenience wrapper over waitpid().
|
|
|
|
|
|
Unfortunately, that also means it can no longer inherit from SynthFS.
|
|
The complication is around /proc/sys/ variables, which were attached
to inodes. Now they're their own thing, and the corresponding inodes
are lazily created (as all other ProcFS inodes are) and simply refer
to them by index.
|
|
All programs that have a CEventLoop now allow local socket connections
via /tmp/rpc.PID and will dump a serialized JSON array of all the live
CObjects in the program onto connecting sockets.
Also added a small /bin/rpcdump tool that connects to an RPC socket and
produces a raw dump of the JSON that comes out.
|
|
This will allow us to easily traverse the entire CObject graph.
|
|
This makes iteration a little more pleasant :^)
|
|
|
|
The point of this function is to stash away the innermost error code
so that we don't lose it by the time we get back to the client code.
|
|
Once the peer has disconnected, recvfrom() should always return 0 once
the socket buffer has been drained.
|
|
This is kind of a mess, but because IPC client code depending on the
IPC protocol definition artifacts in the server code, we have to build
the IPC servers first. And their dependencies before that, etc.
One more drop in the "maybe we should switch to CMake" bucket..
|