summaryrefslogtreecommitdiff
path: root/Libraries
AgeCommit message (Collapse)Author
2020-05-11LibC: Implement new strtod, accurate up to 8 epsBen Wiederhake
This strtod implementation is not perfectly accurate, as evidenced by the test (accuracy_strtod.cpp), but it is sufficiently close (up to 8 eps). The main sources of inaccuracy are: - Highly repeated division/multiplication by 'base' (Each operation brings a multiplicative error of 1+2^-53.) - Loss during the initial conversion from long long to double (most prominently, 69294956446009195 should first be rounded to 69294956446009200 and then converted to 69294956446009200.0 and then divided by ten, yielding 6929495644600920.0. Currently, it converts first to double, can't represent 69294956446009195.0, and instead represents 69294956446009190, which eventually yields 6929495644600919.0. Close, but technically wrong.) I believe that these issues can be fixed by rewriting the part at and after double value = digits.number(); and that the loss before that is acceptable. Specifically, losing the exact exponent on overflow is obviously fine. The only other loss occurs when the significant digits overflow a 'long long'. But these store 64(-7ish) bits, and the mantissa of a double only stores 52 bits. With a bit more thinking, one could probably get the error down to 1 or 2 eps. (But not better.) Fixes #1979.
2020-05-11LibWeb: Add very basic handling of "font-family" font stacksLinus Groh
2020-05-11LibWeb: Ignore parsed pseudo-element selectors & empty complex selectorsLinus Groh
Currently we don't deal with them, so they shouldn't return a SimpleSelector - that'd be a false positive. Also don't produce a ComplexSelector if no SimpleSelector was parsed. This fixes a couple of rendering issues on awesomekling.github.io: link colours, footer size, content max-width (and possibly more!)
2020-05-11LibWeb: Don't paint borders with width <= 0pxLinus Groh
Previously we would only check if the border width property is empty and skip drawing in that case, and enforcing a minimum width of 1px otherwise - but "border: 0;" should not paint a border :^)
2020-05-11LibWeb: Set nav, main, article, aside, section to "display: block"Linus Groh
This makes the blog posts on awesomekling.github.io show up :^)
2020-05-11LibWeb: Draw the inspected node rect last in LayoutBox::render()Linus Groh
2020-05-11LibC: Add minimal <netinet/ip.h>Yonatan Goldschmidt
It's based on <netinet/in.h> and more definitions might be required here (e.g, IP header).
2020-05-11LibC: Add missing <sys/time.h> include in <utmp.h>Yonatan Goldschmidt
This file uses 'struct timeval' without including relevant header.
2020-05-11LibC: Add inet_aton, based on inet_ptonYonatan Goldschmidt
2020-05-11Kernel+LibC: Add AF_MAXYonatan Goldschmidt
Will be updated as we add more protocols (e.g AF_INET6)
2020-05-11LibC: Return nullptr in fgets for size=0Yonatan Goldschmidt
I had this assert trigger, I believe in a legitimate case. This is the behavior glic and musl follow.
2020-05-11LibGfx: Eliminate conditional branch in ditherBen Wiederhake
In theory, this should make dithering a teensy bit faster.
2020-05-11LibLine: Show suggestions in pages if they don't fit on the screenAnotherTest
We can now cycle pages of suggestions when there are more suggestions than we can fit on one screen. This does not inculude a visual indicator that more pages exist, however.
2020-05-11LibVT: Update the terminal buffer based on visible linesAnotherTest
Lines in the history should not be considered for update at all. Fixes #2185
2020-05-10LibWeb: Render content based on MIME type provided by server (or guess)Andreas Kling
We now look at the Content-Type HTTP header when deciding how to render some loaded content. If there is no Content-Type header (which will always be the case when loading local files, for example), we make a guess based on the URL filename.
2020-05-10LibProtocol: Pass response headers in a case insensitive HashMapAndreas Kling
HTTP headers are case-insensitive, so just add CaseInsensitiveTraits to the HashMap and we're good to go! :^)
2020-05-10LibWeb: Add a hook for when an URL is dropped on an HtmlViewAndreas Kling
Embedders of HtmlView can now react to this by hooking on_url_drop.
2020-05-10LibWeb: Teach HtmlView how to render Markdown files :^)Andreas Kling
2020-05-10LibWeb: Teach HtmlView how to open a .txt fileAndreas Kling
When encountering a text file, we now put it in a wrapper document with the file contents in a <pre> tag. This works really nicely :^)
2020-05-10LibWeb: Add Document create_element() and create_text_node() helpersAndreas Kling
2020-05-10LibWeb: Add Text to the forwarding headerAndreas Kling
2020-05-10LibWeb: Add basic support for "border-style: {dotted,dashed}"Linus Groh
2020-05-10LibGfx: Add support for dashed linesLinus Groh
Non-configurable for now.
2020-05-10LibVT: Clear the hovered hyperlink after completing a dragAndreas Kling
2020-05-10LibVT: Allow dragging hyperlinks :^)Andreas Kling
You can now drag a hyperlink as a text/uri-list. This allows you to drag a file from "ls" output and drop it on a FileManager to copy the file there. Truly futuristic stuff!
2020-05-10LibVT: Make selection follow terminal history scrollback :^)Andreas Kling
The buffer positions referred to by a VT::Position now include history scrollback, meaning that a VT::Position with row=0 is at the start of the history. The active terminal buffer keeps moving in VT::Position coordinates whenever we scroll. This allows selection to follow history. It also allows us to click hyperlinks in history. Fixes #957.
2020-05-10LibVT: Use the "ActiveLink" theme color for links being clickedAndreas Kling
Okay, links are finally starting to feel visually intuitive. :^)
2020-05-10LibVT: Don't commit to opening a hyperlink until mouseupAndreas Kling
It felt too rushed to open links when simply mousedown'ing on them. Improve this by implementing basic "click" semantics instead. This patch also introduces the ability to prevent link opening if you want to force selection instead. Hold shift and we will not open links.
2020-05-10LibGfx: Make buttons slightly chunkier on the top/left sideAndreas Kling
2020-05-10LibVT: Open hyperlinks on plain left-click instead of Ctrl+ClickAndreas Kling
2020-05-10LibVT: Always draw hyperlinks with a dotted underlineAndreas Kling
The dotted line is custom painted to put some more distance between the dots than what Painter::draw_line() does.
2020-05-10LibGfx: Replace 'bool dotted' with a LineStyle::{Solid,Dotted} enumLinus Groh
Just a bool is insufficient as we'll have to support dashed lines as well.
2020-05-10LibGfx: Fix dotted lines with thickness > 1Linus Groh
If we just skip every second pixel, we still get a solid line if each "pixel" is wider than 1! Now we skip the same amount of pixels as the line is thick.
2020-05-10LibWeb+Browser: Support about: URL protocol so "about:blank" works :^)Andreas Kling
For now, we simply load an empty resource from any about: URL.
2020-05-10LibLine: Support RGB colorsAnotherTest
This also patches Userland/js.
2020-05-10LibVT: Support RGB colors (\x1b[38;2;<r>;<g>;<b>m)AnotherTest
2020-05-10LibLine: Expose actual_rendered_string_length & accept newlines in promptAnotherTest
2020-05-10LibC: Fix get{sock,peer}name to match their kernel-side prototypesYonatan Goldschmidt
In f4302b58fb0, the kernel-side syscalls (e.g Process::sys$getsockname) were updated to use SC_get{sock,peer}name_params, but the libc functions were not updated.
2020-05-10LibGUI+LibGfx: Paint scollbar tracks with a dithered patternAndreas Kling
Instead of a solid color, we now paint the track/gutter of scrollbars using a 2-color dither pattern for a pleasant millennium feel. :^)
2020-05-10LibDesktop: Return the correct value in OpenUrlAnotherTest
This patch fixes a tiny issue where the result of open_url would always be true, since handle(OpenUrl) returns the message instead of the result.
2020-05-09Meta: Add script to enforce license headers & run it on TravisLinus Groh
2020-05-09LibGUI: Add hook when a tab is middle clickedFalseHonesty
2020-05-09Meta: Delete empty .cpp filesLinus Groh
2020-05-09LibGfx: Fix build with FILL_PATH_DEBUG enabledLinus Groh
2020-05-09LibDebug: Add support for creating VariableInfo for paramtersItamar
2020-05-09HackStudio: Show a backtrace in the debug information tabItamar
2020-05-09LibWeb: Implicitly close all subpaths when canvas.fill() is calledAnotherTest
2020-05-09LibGfx: Add Path::close_all_subpaths()AnotherTest
Unlike Path::close() which closes only the last subpath (if possible), this closure mechanism closes _all_ available subpaths.
2020-05-09LibVT: Snapshot the URL we're opening a context menu forAndreas Kling
Otherwise it may get lost due to a leave event firing in the widget.
2020-05-09LibVT: Show the hover hand cursor when hovering over hyperlinks :^)Andreas Kling