Commit graph

43378 commits

Author SHA1 Message Date
Sam Atkins
c8b3e68c6e netstat: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
b5f4e96e71 mount: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
9d34a1f4a7 md: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
14ce07dd52 markdown-check: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
ccebf8bf59 man: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
75208f2333 lsusb: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
880b35739e lspci: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
376b5731a2 lsof: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
9e4689f4c8 lsirq: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
2be7f9f42d lscpu: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
03a3b6f91c lsblk: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
8d7179766a js: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
f6884235e2 LibCore: Add a ConfigFile::open() overload for Core::Stream::File
Core::Stream is already used internally, but ironically you could not
open a ConfigFile using one!
2022-11-19 17:00:10 +00:00
Sam Atkins
678b4983cb json: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
1d67a1e73f ifconfig: Port to Core::Stream and Core::System 2022-11-19 17:00:10 +00:00
Sam Atkins
78a94cd3b7 headless-browser: Port screenshot output to Core::Stream
As noted in https://github.com/SerenityOS/serenity/issues/15239
`headless-browser` is currently broken, with or without these changes.
2022-11-19 17:00:10 +00:00
Sam Atkins
2228786329 gron: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
c757db9475 gml-format: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
d39552a7b7 fortune: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
813fc10aae file: Port to Core::Stream
Some nicer way of dealing with `stat` would be good. :thonk:
2022-11-19 17:00:10 +00:00
Sam Atkins
7684e514dd du: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
e08a42acd8 dmesg: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
37d4e01fc4 diff: Port to Core::Stream
Also switched to calling Core::System::isatty(), and doing so once
instead of per hunk.
2022-11-19 17:00:10 +00:00
Sam Atkins
ed6d353cdd df: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
05c3b48e63 Utilities: Port cpp utilities to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
39a4f1560b copy: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
6763e1bd60 comm: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
8ed5403d8c comm: Stop skipping a line in the output
Because of how we output lines in the loop above, if we leave that loop
when the last line was not the same in both files, then either
`file1_line` or `file2_line` has not been output yet.
`process_remaining()` does not print that line either, since it
immediately reads a new line. So, output the previously-missing line
before we call that. :^)
2022-11-19 17:00:10 +00:00
Sam Atkins
83366e2b2e cksum: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
d071a93047 base64: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
5a0c298074 arp: Port to Core::Stream 2022-11-19 17:00:10 +00:00
Sam Atkins
4ad1695c78 WebContent: Add $() and $$() functions to browser console
These are based on the ones in Firefox:

`$(selector, element = document)`:
    Equivalent to `element.querySelector(selector)`.

`$$(selector, element = document)`:
    Equivalent to `element.querySelectorAll(selector)`.
2022-11-19 16:56:31 +00:00
Sam Atkins
c793beb0cc WebContent: Add $_ variable to browser console
This holds the return value of the expression that was last entered into
the browser console. If that last expression returned an error of some
kind, `$_` will be `undefined`. This matches the behaviour in Firefox.
2022-11-19 16:56:31 +00:00
Sam Atkins
3ec13fdb86 WebContent: Rename $0 getter and use global object instead of this
Using the global object works consistently in native accessors and
native functions, so changing this for consistency.
2022-11-19 16:56:31 +00:00
Sam Atkins
f9c9506997 WebContent: Create a separate realm for JS console input
This allows us to expose extra functions and properties to the console,
such as `$0`, without them being available to website scripts.

`ConsoleEnvironmentSettingsObject` is basically a stub, since we require
an `EnvironmentSettingsObject` but it has abstract methods.
2022-11-19 16:56:31 +00:00
Timothy Flynn
9782660cb6 LibWebView: Update OOPWV's URL when a page starts/finishes loading
If the page's URL is changed from within the WebContent process (e.g.
window.location.href is set from JavaScript, or a navigation is started
from WebDriver), we would not store the URL at all within OOPWV. This
prevented actions like reloading from working properly, as the browser
would reload whatever URL was previously entered in the URL box.
2022-11-19 16:56:02 +00:00
thankyouverycool
325061b0e4 WindowServer: Add misbehavior restriction for Blocking modals
Two Blocking modals in the same modal chain which aren't descended
one from the other will block each other's input rendering the chain
noninteractive. This has caused confusion in the past for builders so
this warning makes the behavior explicitly forbidden.
2022-11-19 16:04:42 +01:00
thankyouverycool
ef7d9c0166 LibGUI: Disallow shortcut propagation in Blocking modals and Popups
This restriction is already present for mouse shortcuts but was
forgotten in the recent key event refactor.
2022-11-19 16:04:42 +01:00
thankyouverycool
59e10d5283 WindowServer: Don't compute title usernames for frameless Windows
This was causing a slight delay when opening ComboBox ListViews.
As an easy first optimization, don't bother computing this at all
for frameless windows and those not type Normal.
2022-11-19 16:04:42 +01:00
thankyouverycool
4ba20f08c7 LibGUI: Don't search ComboBox Windows when holding a mod key 2022-11-19 16:04:42 +01:00
thankyouverycool
5c923977b7 LibGUI: Always close() Dialogs no matter the execution result
Fixes Blocking modal race conditions when new windows are created
in the same scope as Dialogs.
2022-11-19 16:04:42 +01:00
thankyouverycool
2028fbeae3 LibGUI: Remove redundant event handling in EmojiInputDialog
The Dialog class already handles closing on escape.
2022-11-19 16:04:42 +01:00
thankyouverycool
a6581c2aac LibGUI: Paint text selections as active in Popups
And hide TextEditor cursors in active windows when focus is preempted
2022-11-19 16:04:42 +01:00
thankyouverycool
f7eb72a8be Terminal+LibVT: Toggle TerminalWidget's focus on input preemption
This prevents Terminal's cursor from blinking when a Popup is open.
2022-11-19 16:04:42 +01:00
thankyouverycool
657ff1cd19 LibGUI: Set focus proxy for CommandPalette's TableView 2022-11-19 16:04:42 +01:00
thankyouverycool
3b18226fcb LibGUI: Let Widgets track their focus proxy delegators
And update them on relevant events.
2022-11-19 16:04:42 +01:00
thankyouverycool
4aa608aa71 LibGUI+Taskbar+Applets+Applications: Set various windows as Popups
Makes the Audio applet, Taskbar clock, CommandPalette, EmojiPicker,
and Assistant work as Popup windows. Popups are frameless, unmovable,
and unresizable by default, in addition to their preemptive function.
Also sets Assistant not to obey widget min size so its search result
area resizes correctly
2022-11-19 16:04:42 +01:00
thankyouverycool
24d299c9c8 LibGUI+WindowServer+Applets+Taskbar: Remove active input concepts
and the CaptureInput mode. They are a source of unneeded complexity
in WindowServer and have proven prone to regressions, so this patch
replaces them with a simple input preemption scheme using Popups.

Popup windows now have ergonomics similar to menus: When open,
a popup preempts all mouse and key events for the entire window
stack; however, they are fragile and will close after WindowServer
swallows the first event outside them. This is similar to how combo
box windows and popups work in the classic Windows DE and has the
added benefit of letting the user click anywhere to dismiss a popup
without having to worry about unwanted interactions with other
widgets.
2022-11-19 16:04:42 +01:00
thankyouverycool
35bd79701c WindowServer: Add request_close_fragile_windows() helper 2022-11-19 16:04:42 +01:00
thankyouverycool
c23adeaaf7 WindowServer: Add foremost_popup_window() helper 2022-11-19 16:04:42 +01:00