summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2023-01-13Userland: Remove a bunch of unveil calls on /sys/kernel/processesLiav A
These are not needed anymore since the introduction of the new get_root_session_id syscall.
2023-01-13LibGUI: Make undo work for TextDocument ReplaceAllTextCommandSam Atkins
The undo code here was just replacing the new text with the new text. Now we actually save the old text and use that instead. :^)
2023-01-13GMLPlayground: Add a toolbarSam Atkins
No new features, but it sure makes things look more fancy. :^)
2023-01-13GMLPlayground: Move layout to GMLSam Atkins
There isn't much layout right now, but it felt very wrong to not have the GML editor use GML. :^)
2023-01-13LibJS: Use integer days in RoundDurationBodilessSleeper
Before we used the value of days which may also contain a fraction. The algorithm expects it to be an integer. This was addressed upstream in: tc39/proposal-temporal@02379da
2023-01-12LibWeb: Fix ignored .to_string() errors in Web::dump_sheet()MacDue
2023-01-12LibWeb: Fix ignored .to_string() errors in StyleValueMacDue
2023-01-12LibWebView+Ladybird: Move preferred color scheme to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move text selection to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move running JavaScript to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move debug request to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move page loading to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move DOM inspection helpers to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move get source request to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Move zoom logic to ViewImplementationLinus Groh
2023-01-12LibWebView+Ladybird: Begin de-duplicate WebView implementationsLinus Groh
This starts moving code equally shared between the OOPWV and Ladybird WebContentView implementations to WebView::ViewImplementation, beginning with the client state.
2023-01-12LibWeb: Don't mark layout tree as selected when selection is zero-lengthAndreas Kling
2023-01-12LibWeb: Remove now-unused LayoutRange and LayoutPosition classes :^)Andreas Kling
2023-01-12LibWeb: Use DOM Selection instead of ad-hoc layout tree selectionAndreas Kling
Before this patch, we were expressing the current selection as a range between two points in the layout tree. This was a made-up concept I called LayoutRange (2x LayoutPosition) and as it turns out, we don't actually need it! Instead, we can just use the Selection API from the Selection API spec. This API expresses selection in terms of the DOM, and we already had many of the building blocks implemented. To ensure that selections get visually updated when the underlying Range of an active Selection is programmatically manipulated, Range now has an "associated Selection". If a range is updated while associated with a selection, we recompute layout tree selection states and repaint the page to make it user-visible.
2023-01-12LibWeb: Implement BrowsingContext::select_all() in terms of SelectionAndreas Kling
We do what other browsers do and create a selection anchored at the document's body element.
2023-01-12LibWeb: Implement BrowsingContext::selected_text() in terms of SelectionAndreas Kling
Instead of sifting through the layout tree to extract the selected text, look at the DOM selection instead. Note that we can't just stringify the DOM Range, as that would include non-visible things (like the content of <style> elements, etc.) so we run it through an ad-hoc variant of the range stringification algorithm. This can probably be factored better, but it's a start. :^)
2023-01-12LibWeb: Add convenient Selection::range() accessorAndreas Kling
This is a lot smoother than calling the throwsy get_range_at() API, especially since we know there at most 1 range in the selection.
2023-01-12Browser: Implement zoom :^)Linus Groh
Largely based on the Ladybird implementation in 0cc151b.
2023-01-12SoundPlayer: Don't silently ignore parsing failuresTim Schumacher
If we failed to decode a sample we'd presumably want to tell the user, and we definitely don't want to just go into another round of decoding somewhere in the middle of a broken sample.
2023-01-12LibAudio: Don't assume that a non-full span means EOFTim Schumacher
Especially if buffered streams are involved, not filling the span completely can also mean that we just ran out of filled buffer space and we need to refill it on the beginning of the next read call.
2023-01-12WebContent: Add IPC for setting 'device pixels per CSS pixel'Linus Groh
2023-01-12LibWeb: Rename PageHost::m_screen_display_scale to match the getter nameLinus Groh
2023-01-12LibGUI: Port AbstractThemePreview::set_theme_from_file to Core::StreamKarol Kosek
2023-01-12LibGUI: Remove unused AbstractThemePreview::on_theme_load_from_fileKarol Kosek
2023-01-12PixelPaint: Scale lasso tool preview path on zoom level changeTim Ledbetter
The size of the preview shown by the lasso tool now scales with the current zoom level.
2023-01-12Utilities: Add ttfdisasm for disassembling OpenType instructionsMacDue
This utility when given a .tff font provides options for disassembling: - The 'fpgm' table, this a program that's run once when the font is loaded. It's used to define instructions and functions used by used by other programs. - The 'prep' table, this is a general program that's run when ever the font size (or other properties) changes. - And the programs associated with any individual glyph. The disassembly is printed in a format that matches the examples from: https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions I'm mainly adding this because I think it's neat to be able to look at these things, and think it'll be helpful for debugging an interpreter. With this you can see that all of the LiberationSerif-XXX.tff fonts in Serenity have these programs ready to go.
2023-01-12LibGfx: Provide accessors to instruction data to OpenType::FontMacDue
These probably won't need to stick around forever, but will be helpful for creating some debug utilities.
2023-01-12LibGfx: Parse the TTF fpgm and prep tablesMacDue
These contain the font and CVT programs respectively.
2023-01-12LibGfx: Add OpenType opcodes and helpers to parse instruction streamsMacDue
This defines all the OpenType opcodes/instructions from the specification: https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions Each instructions has mnemonic and a range of possible opcodes (as some of the bits are pretty much immediate value flags). There's a little helper Instruction struct for accessing the flags and any associated data (in the case of PUSH instructions). Then the InstructionStream provides a way of iterating over all the instructions in some bytes.
2023-01-12Userland: Replace remaining Core::Timer::construct()s with try_create()Sam Atkins
2023-01-12Userland: Use Core::Timer::create_foo() factory functions where possibleSam Atkins
2023-01-12LibCore+Userland: Don't auto-start new Core::TimersSam Atkins
This was unintuitive, and only useful in a few cases. In the majority, users had to immediately call `stop()`, and several who did want the timer started would call `start()` on it immediately anyway. Case in point: There are only two places I had to add a manual `start()`.
2023-01-12LibCore+Userland: Make Core::Timer::create_single_shot() return ErrorOrSam Atkins
clang-format sure has some interesting opinions about where to put a method call that comes after a lambda. :thonk:
2023-01-12LibCore+Userland: Make Core::Timer::create_repeating() return ErrorOrSam Atkins
The FIXMEs must flow!
2023-01-11LibCore: Add StandardPaths::font_directories()Linus Groh
This provides a list of well-known directories containing font files, e.g. for use with Gfx::FontDatabase::load_all_fonts_from_path().
2023-01-11ThemeEditor: Warn about unsaved changes on file dropKarol Kosek
2023-01-11ThemeEditor: Fully load files on drop eventsKarol Kosek
Previously, only the preview frame was updated without changing any values in the right panel or even a file path in the window title.
2023-01-11ThemeEditor: Take drop events from the whole windowKarol Kosek
Drops were handled only by the Preview Widget previously. It probably made a little more sense before the program redesign, as it took most of window the space, but now honestly this idea doesn't hold up that well.
2023-01-11LibGUI: Update the AboutDialog copyright yearTim Ledbetter
2023-01-11LibWeb: Make Paintable visit its cached containing block pointerAndreas Kling
This was *probably* already safe, but there's no harm in making sure the cached pointer gets marked during GC.
2023-01-11LibWeb: Make a handful of paintable leaf classes `final`Andreas Kling
2023-01-11LibWeb: Make a handful of layout node leaf classes `final`Andreas Kling
2023-01-11LibWeb: Make the paint tree GC-allocatedAndreas Kling
This simplifies the ownership model between DOM/layout/paint nodes immensely by deferring to the garbage collector for figuring out what's live and what's not.
2023-01-11LibWeb: Remove unused declaration Node::removed_last_ref()Andreas Kling
2023-01-11LibCore: Explain EventLoop and reorder some members in the headerkleines Filmröllchen
This hopefully makes EventLoop easier to understand.