Age | Commit message (Collapse) | Author |
|
This adds a button on the menubar next to the volume slider to
indicate mute state and allow toggling the mute. Pressing the M key
will still toggle the mute, as before. When muted, the volume scroll
bar now gets disabled.
|
|
The move tool will no longer change the foreground layer if the cursor
is currently hovering over a resize anchor.
|
|
This mostly updates code what was written before but merged after these
were added.
|
|
|
|
|
|
This feature allows any application to easily install an automatically
updating list of recently open files in a GUI::Menu.
There are three main pieces to this mechanism:
- GUI::Application::set_config_domain(domain): This must be called
before using the recent files feature. It informs the Application
object about which config domain to find the relevant RecentFiles
list under.
- GUI::Menu::add_recently_open_files(callback): This inserts the list
in a menu. A callback must be provided to handle actually opening
the recent file in some application-specific way.
- GUI::Application::set_most_recently_open_file(path): This updates
the list of recently open files, both in the configuration files,
and in the GUI menu.
|
|
Added new size parameter to URLSearchParams.
Spec: https://url.spec.whatwg.org/#dom-urlsearchparams-size
Co-Authored-By: Linus Groh <mail@linusgroh.de>
|
|
|
|
This adds an option to only detect emoji that should always present as
emoji. For example, the copyright symbol (unless followed by an emoji
presentation selector) should render as text.
|
|
`consume_until(foo)` stops before foo, and so does
`ignore_until(Predicate)`, so let's make the other `ignore_until()`
overloads consistent with that so they're less confusing.
|
|
Each {} block is now treated as a folding region, so that they can be
collapsed and expanded in TextEditor, HackStudio, and anywhere else
that uses the syntax highlighter. :^)
|
|
Each {} block is now treated as a folding region, so that they can be
collapsed and expanded in TextEditor, GML Playground, HackStudio, and
anywhere else that uses the syntax highlighter. :^)
|
|
|
|
|
|
A `TextDocumentFoldingRegion` represents a region of the document which
the user can collapse/expand to make code easier to navigate.
|
|
|
|
Previously this stored the position of each visual line break, meaning
that all the text would always be painted. By storing each visual
line's Utf32View, we can skip over parts of the text, such as for code
folding.
|
|
Also, stop unnecessarily creating a RefPtr for the unspanned font - just
use `font()`, which returns a reference.
|
|
This only becomes a problem with folding, since arbitrary lines may be
invisible, meaning we try to apply a span for an invisible line N, on
line N+X instead, causing occasional crashes.
This check means we can remove the loop that skips spans occurring at
the end of the line.
|
|
This commit moves the implementation of getopt into AK, and converts its
API to understand and use StringView instead of char*.
Everything else is caught in the crossfire of making
Option::accept_value() take a StringView instead of a char const*.
With this, we must now pass a Span<StringView> to ArgsParser::parse(),
applications using LibMain are unaffected, but anything not using that
or taking its own argc/argv has to construct a Vector<StringView> for
this method.
|
|
|
|
|
|
|
|
This removes a whole bunch of FIXMEs in the immediate expr
implementations as well :^)
|
|
That is, return ErrorOr<int>, handle fallible ops with TRY() and accept
a Main::Arguments.
Note that we do not populate the argc/argv members of Main::Arguments,
so all accesses have to go through .strings.
|
|
This currently allocates in .parse(), but that's better than making the
caller do the exact same before passing us the values.
Note that this is only temporary to aid in conversion, a future commit
will remove this and switch to requiring the users to allocate the
vector instead.
|
|
|
|
This starts by switching all AST members to Strings, and dealing with
the fallout.
|
|
|
|
|
|
|
|
This will also be accessed by navigator.{plugins,mimeTypes} to
determine if they should expose any information.
|
|
|
|
With the GC heap conversion, the functionality of legacy platform
objects was broken. This is because the generated implementation of one
of them was used for all of them, removing functionality such as
deletion.
This re-adds all functionality, where questions such as "does the
object support indexed properties?" is instead answered by virtual
functions instead of by the IDL generator checking the presence of
certain keywords/attributes.
|
|
The name "initial containing block" was wrong for this, as it doesn't
correspond to the HTML element, and that's specifically what it's
supposed to do! :^)
|
|
Before, the shading of the Presenter icons was the wrong way round and
the external contrast was not as good as it could be. This has been
rectified and the icons are now light on the left- and dark on the
right-side. Also, they now use the same gray colors as other system
icons, making them sit much more nicely together, and have been
generally improved.
|
|
Use the correct icon in the Presenter application man page and add a
link to open the executable.
|
|
Using char causes bytes equal to or over 0x80 to be treated as a
negative value and produce incorrect results when implicitly casting to
u32.
For example, `atob` in LibWeb uses this decoder to convert non-ASCII
values to UTF-8, but non-ASCII values are >= 0x80 and thus produces
incorrect results in such cases:
```js
Uint8Array.from(atob("u660"), c => c.charCodeAt(0));
```
This used to produce [253, 253, 253] instead of [187, 174, 180].
Required by Cloudflare's IUAM challenges.
|
|
Defining it as a direct property causes it to have no getter/setter
function, which causes an empty Optional crash when attempting to
access such getter on a cross-origin iframe.
Fixes amazon.com crashing on this particular crash.
|
|
This was causing the levels dialog to be displayed incorrectly.
|
|
|
|
Previously, clicking on the layer menu with no image loaded would
cause a crash.
|
|
Previously, clicking on the levels dialog with no image loaded would
cause a crash.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|