summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-01SoundPlayer: Add action with icon for toggling muteAndreas Oppebøen
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.
2023-03-01PixelPaint: Do not change layers when scaling with the move toolTim Ledbetter
The move tool will no longer change the foreground layer if the cursor is currently hovering over a resize anchor.
2023-02-28Everywhere: Use '_{short_,}string' literals moreLinus Groh
This mostly updates code what was written before but merged after these were added.
2023-02-28ImageViewer: Add list of recently open files to the File menu :^)Andreas Kling
2023-02-28TextEditor: Add list of recently open files to the File menu :^)Andreas Kling
2023-02-28LibGUI: Add a simple "recently open files" featureAndreas Kling
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.
2023-02-28LibWeb: Add size to URLSearchParamsCanadaHonk
Added new size parameter to URLSearchParams. Spec: https://url.spec.whatwg.org/#dom-urlsearchparams-size Co-Authored-By: Linus Groh <mail@linusgroh.de>
2023-02-28LibGfx: Render text presentation emoji as text if we have its glyphTimothy Flynn
2023-02-28LibUnicode: Allow ignoring text presentation emoji in sequence detectionTimothy Flynn
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.
2023-02-28AK+Everywhere: Make GenericLexer::ignore_until() stop before the valueSam Atkins
`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.
2023-02-28LibJS: Assign folding regions for JS filesSam Atkins
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. :^)
2023-02-28LibGUI: Assign folding regions for GML filesSam Atkins
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. :^)
2023-02-28LibSyntax+LibGUI: Let syntax highlighters assign folding regionsSam Atkins
2023-02-28LibGUI: Support folding regions in TextEditorSam Atkins
2023-02-28LibGUI: Add folding regions to TextDocumentSam Atkins
A `TextDocumentFoldingRegion` represents a region of the document which the user can collapse/expand to make code easier to navigate.
2023-02-28LibGUI: Add TextRange::line_count()Sam Atkins
2023-02-28LibGUI: Store Utf32Views in TextEditor::LineVisualDataSam Atkins
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.
2023-02-28LibGUI: Create TextAttributes for unspanned text once, not repeatedlySam Atkins
Also, stop unnecessarily creating a RefPtr for the unspanned font - just use `font()`, which returns a reference.
2023-02-28LibGUI: Skip painting TextEditor spans that end on previous linesSam Atkins
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.
2023-02-28Userland+AK: Stop using getopt() for ArgsParserAli Mohammad Pur
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.
2023-02-28Shell: Convert the POSIX parser/lexer to ErrorOrAli Mohammad Pur
2023-02-28Shell: Convert all immediately convertible fallible functions to ErrorOrAli Mohammad Pur
2023-02-28Shell: Convert the remaining fallible AST functions to ErrorOrAli Mohammad Pur
2023-02-28Shell: Make Immediate expression invocation fallibleAli Mohammad Pur
This removes a whole bunch of FIXMEs in the immediate expr implementations as well :^)
2023-02-28Shell: Convert builtins to use the modern main() styleAli Mohammad Pur
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.
2023-02-28LibCore: Make ArgsParser tolerate Main::Arguments with only .stringsAli Mohammad Pur
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.
2023-02-28Shell: Make AST::dump() ErrorOr-awareAli Mohammad Pur
2023-02-28Shell+LibCodeComprehension: Start replacing {Deprecated => }StringAli Mohammad Pur
This starts by switching all AST members to Strings, and dealing with the fallout.
2023-02-28AK: Add two starts_with{bytes,}() APIs to StringAli Mohammad Pur
2023-02-28LibWeb: Follow-up fixes for Linus's comments in #17658Andreas Kling
2023-02-28LibWeb: Implement navigator.{plugins,mimeTypes}Luke Wilde
2023-02-28LibWeb: Move pdfViewerSupported's answer to PageLuke Wilde
This will also be accessed by navigator.{plugins,mimeTypes} to determine if they should expose any information.
2023-02-28LibWeb: Restore Storage as a legacy platform objectLuke Wilde
2023-02-28LibWeb: Restore proper functionality of legacy platform objectsLuke Wilde
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.
2023-02-28LibWeb: Rename Layout::InitialContainingBlock to Layout::ViewportAndreas Kling
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! :^)
2023-02-28Base: Improve Presenter IconsCubic Love
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.
2023-02-28Base: Update Presenter man page with correct icon + Add a link to openCubic Love
Use the correct icon in the Presenter application man page and add a link to open the executable.
2023-02-28LibTextCodec/Latin1: Iterate over input string with u8 instead of charLuke Wilde
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.
2023-02-28LibWeb: Define navigator/clientInformation with define_native_accessorLuke Wilde
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.
2023-02-28PixelPaint: Remove shrink_to_fit property from LevelsDialog GMLTim Ledbetter
This was causing the levels dialog to be displayed incorrectly.
2023-02-28Ports: Add MednafenLuke Wilde
2023-02-28PixelPaint: Fix clicking on the layer menu with no image loadedTim Ledbetter
Previously, clicking on the layer menu with no image loaded would cause a crash.
2023-02-28PixelPaint: Disable levels dialog action when no image is loadedTim Ledbetter
Previously, clicking on the levels dialog with no image loaded would cause a crash.
2023-02-28LibGfx: Bubble up allocation failure instead of panickingLucas CHOLLET
2023-02-27LibJS: Add [[nodiscard]] to ThrowCompletionOr<void>Luke Wilde
2023-02-27LibJS: Add missing TRY in StringIteratorPrototype::nextLuke Wilde
2023-02-27LibJS: Propagate errors from Intrinsics initializationLuke Wilde
2023-02-27LibJS: Add missing error propagation to global object initializationsLuke Wilde
2023-02-27LibJS/Bytecode: Return ThrowCompletionOr<void> from CreateVariable opLuke Wilde
2023-02-27LibJS: Don't discard ThrowCompletionOr<void> from declaration iterationLuke Wilde