Age | Commit message (Collapse) | Author |
|
Shape was allocating property tables inside visit_children(), which
could cause garbage collection to happen. It's not very good to start
a new garbage collection while you are in the middle of one already.
|
|
|
|
Previously, it didn't take into account the visibility of
column headers.
|
|
Previously, the GUI logic of HackStudio was all stuffed into main(),
and it started getting a bit out of hand :)
|
|
To make slightly more aesthetically pleasing use of the vertical space,
we now move all vertically centered text lines down by half the amount
of space below the font's baseline.
This is probably not the "correct" way to do this, but it does make
things look nicer with some of our fonts already.
|
|
We don't want the menu titles to cover the entire menubar.
|
|
|
|
This does nothing at the moment but will soon allow us to improve the
vertical positioning of text.
|
|
The m_address member is not needed, since PCI::Device already has one.
|
|
|
|
When holding Ctrl and scrolling on a slider widget, the scrolling
acceleration gets increased.
This can make it faster to get to the knob location you want to
get to. :^)
|
|
We need to assert if interrupts are not disabled when changing the
interrupt number of an interrupt handler.
Before this fix, any change like this would lead to a crash,
because we are using InterruptDisabler in IRQHandler::change_irq_number.
|
|
First of all, this fixes a dumb info leak where we'd write kernel heap
addresses (StringImpl*) into userspace memory when reading a watcher.
Instead of trying to pass names to userspace, we now simply pass the
child inode index. Nothing in userspace makes use of this yet anyway,
so it's not like we're breaking anything. We'll see how this evolves.
|
|
If you provide a buffer that's too small, we'll still dequeue an event
and write whatever fits in the provided buffer.
|
|
In the case of an exception in a property getter function we would not
return early, and a subsequent attempt to call the replacer function
would crash the interpreter due to call_internal() asserting.
Fixes #3548.
|
|
When opening something in the left-side treeview, it also opens in the
right-side directory view. That triggers the "path changed" hook in the
directory view, which causes us to fully reveal the opened directory
in the left-side treeview.
This feedback loop made the UI feel weird since it caused directories
to expand just by selecting them in the left-side treeview. So let's
break that loop.
|
|
|
|
The kernel doesn't support msg_iovlens != 1 yet and nothing passes
an amount != 1, but if anyone ever adds support for this they won't
have to worry about ue at least.
|
|
Fixes #3530.
|
|
|
|
Fixes #3471, adds a test.
|
|
This allows picking for example bochs: SERENITY_RUN=b ninja run
|
|
The calculation was only taking the rect's inner height, but not its top
offset into account.
Fixes #3540.
|
|
We need to track whether we actually own the storage.
|
|
Fixes #3544.
|
|
Use the new TreeView::expand_all_parent_of() API to ensure that newly
opened directories are revealed and scrolled-into-view in the left-side
treeview. :^)
|
|
This does exactly what it sounds like. :^)
|
|
Now that the "/" directory can have a (virtual) parent index, we need
to account for that when converting a full path to a model index.
|
|
When we enter an inaccessible directory, we still allow that directory
to become selected in the left-side treeview, so we need to update the
location box and window title to reflect the new current path.
This is not perfectly factored and there's a bit of duplication between
the model's on_error and on_complete hook callbacks in DirectoryView.
Needs more work. :^)
|
|
|
|
This will allow FileIconProvider to check additional things about
the specified path. (We previously only had access to the basename.)
|
|
Instead of popping up a message box whenever we can't read an opened
directory, show the error message inside the DirectoryView (as a label)
instead.
This fixes a visual inconsistency where an inaccessible directory would
be selected in the left-side treeview while the previous directory's
contents were still showing on the right.
This also makes keyboard navigation a bit more pleasant since you're
not suddenly interrupted by a message box.
|
|
Only focus the new active child if the old one had focus previously.
|
|
|
|
|
|
The parser considers it a syntax error at the moment, other engines
throw a ReferenceError during runtime for ++foo(), --foo(), foo()++ and
foo()--, so I assume the spec defines this.
|
|
|
|
|
|
This was introduced by 705cee528a803b1671d16eeaf222d3318708500b,
where the '!' was copied from the previous implementation, but the
behavior was not
|
|
|
|
We can now see at which time a packet was received by the network
adapter, instead of having to measure user time after receiving
the packet in user space.
This means the destination timestamp is no longer affected by in-kernel
queuing delays, which can be tens of milliseconds when the system
is under load.
It also means that if ntpquery grows a message queue that waits on
replies from several requests, the time used processing one response
won't be incorrectly included in the destination timestamp of the
next response (in case two responses arrive at the network adapter
at roughly the same time).
NTP's calculations work better if send and receive latency are
about equal, and this only removes in-kernel queue delays and
context switch delays for the receiving packet. But the two
latencies aren't very equal anyways because $network. Also, maybe
we can add another API for setting the send time in the outgoing
packet in kernel space right before (or when) hitting the network
adapter and use that here too. So this still seems like progress.
|
|
When SO_TIMESTAMP is set as an option on a SOCK_DGRAM socket, then
recvmsg() will return a SCM_TIMESTAMP control message that
contains a struct timeval with the system time that was current
when the socket was received.
|
|
I want to add another entry to this list and don't want to
have to think of a number for it.
|
|
Since the receiving socket isn't yet known at packet receive time,
keep timestamps for all packets.
This is useful for keeping statistics about in-kernel queue latencies
in the future, and it can be used to implement SO_TIMESTAMP.
|
|
The implementation only supports a single iovec for now.
Some might say having more than one iovec is the main point of
recvmsg() and sendmsg(), but I'm interested in the control message
bits.
|
|
Need to set the sort order after model was set to sort the table.
|
|
Instead of forcefully setting the sort order to Ascending upon column
sort, setting it to the previously selected sort order
|
|
We were dropping all the incoming pledge promise strings and parsing
"" instead.
Fixes #3519.
|
|
|
|
This makes it possible to drag & drop files to/from the desktop! :^)
|