summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-01-03Spreadsheet: Background fill color after reaching vertical endmartinfalisse
When selecting a cell in the spreadsheet that was added automatically as per the InfinitelyScrollableTableView implementation, the background color is now filled correctly. Previously, when navigating horizontally in a spreadsheet, after a certain point the cells would not have the same background fill color as the user would have experienced in the previous column ranges (A-Z).
2022-01-03CrashReporter: Move progressbar into main windowSamuel Bowman
Previously we would create a temporary progress window to show a progressbar while the coredump is processed. Since we're only waiting on backtraces and CPU register states, we can move the progressbar into the main window and show everything else immediately while the slow parts are generated in a BackgroundAction.
2022-01-03Applets/ResourceGraph: Propagate errors in JSON decodingcreator1creeper1
2022-01-03Applets/Network: Propagate errors using custom try_createcreator1creeper1
We now move-construct the bitmaps into the NetworkWidget.
2022-01-03Applets/Network: Propagate errors with try_set_main_widgetcreator1creeper1
Use try_set_main_widget instead of set_main_widget.
2022-01-03Applets/Audio: Propagate errors using custom try_createcreator1creeper1
We now move-construct the bitmaps into the AudioWidget.
2022-01-03Applets/Audio: Propagate errors with try_set_main_widgetcreator1creeper1
Use try_set_main_widget instead of set_main_widget.
2022-01-03WindowServer: Tighten pledged promisesbugreport0
2022-01-03Taskbar: Tighten pledged promises, remove incorrect commentbugreport0
2022-01-03RequestServer: Tighten pledged promisesbugreport0
2022-01-03ChessEngine: Remove unused 'rpath' promisebugreport0
2022-01-03LibGUI: Bring entire cell into view after auto scroll into viewmartinfalisse
On account of row and column headers, when a user navigates to a cell (for example in the spreadsheet application) that is outside of the view, the cell is not properly aligned and so is partially cut-off. This fix takes into account the row and column headers when calculating the Rect to pass to the scroll_into_view function.
2022-01-03WebServer: Make ErrorOr unwrapping more idiomaticMaciej
This still not propagates errors properly, but is at least (more) consistent with the codebase.
2022-01-03LibJS: Implement the Extend TimeZoneName Option ProposalTimothy Flynn
This is a stage 4 proposal that was recently merged into the main ECMA-402 spec. See: https://github.com/tc39/ecma402/commit/1ba5ee7
2022-01-03LibUnicode: Add minimal support for generic & offset-based time zonesTimothy Flynn
ECMA-402 now supports short-offset, long-offset, short-generic, and long-generic time zone name formatting. For example, in the en-US locale the America/Eastern time zone would be formatted as: short-offset: GMT-5 long-offset: GMT-05:00 short-generic: ET long-generic: Eastern Time We currently only support the UTC time zone, however. Therefore, this very minimal implementation does not consider GMT offset or generic display names. Instead, the CLDR defines specific strings for UTC.
2022-01-02Spider: Redraw completely when drawing cardsJamie Mansfield
Spider was only updating the new bounding box area after drawing cards from the deck - leaving behind a sliver of the old deck. This was a regression, as the game previously used the old bounding box, introduced by GH-11153.
2022-01-02SoundPlayer: Don't enqueue samples depending on the GUI loopkleines Filmröllchen
Previously, SoundPlayer would read and enqueue samples in the GUI loop (through a Timer). Apart from general problems with doing audio on the GUI thread, this is particularly bad as the audio would lag or drop out when the GUI lags (e.g. window resizes and moves, changing the visualizer). As Piano does, now SoundPlayer enqueues more audio once the audio server signals that a buffer has finished playing. The GUI- dependent decoding is still kept as a "backup" and to start the entire cycle, but it's not solely depended on. A queue of buffer IDs is used to keep track of playing buffers and how many there are. The buffer overhead, i.e. how many buffers "too many" currently exist, is currently set to its absolute minimum of 2.
2022-01-02LibAudio: Remove frame-wise copys from FlacLoaderkleines Filmröllchen
Previously, FlacLoader would read the data for each frame into a separate vector, which are then combined via extend() in the end. This incurs an avoidable copy per frame. By having the next_frame() function write into a given Span, there's only one vector allocated per call to get_more_samples(). This increases performance by at least 100% realtime, as measured by abench, from about 1200%-1300% to (usually) 1400% on complex test files.
2022-01-02LibAudio: Alow creating a Buffer from a FixedArraykleines Filmröllchen
A FixedArray, due to its non-allocation guarantee, is great for audio programming, so it's natural to have it interface with Buffer.
2022-01-02SoundPlayer: Remove resolved FIXMEkleines Filmröllchen
I already resolved this some time ago but apparently forgot about it :^)
2022-01-02LibCore: Mark 'Read options' parameter [[maybe_unused]] in Account.cppLinus Groh
This broke the macOS clang CI build.
2022-01-02LibJS: Fix two typos in comments in AST.cppLinus Groh
2022-01-02 LibJS: Let Completion::update_empty() take an Optional<Value>Linus Groh
It also needs to be able to take what the spec calls 'empty', which is an Optional<Value> in this case (*not* an empty JS::Value). The common use case is updating a completion with another completion, that may also have an empty [[Value]] slot.
2022-01-02LibJS: Move provided Optional<Value> argument in normal_completion()Linus Groh
2022-01-02LibJS: Update ToRawPrecision / ToRawFixed AO spec commentsTimothy Flynn
This is a normative change in the Intl spec: https://github.com/tc39/ecma402/commit/f0f66cf There are two main changes here: 1. Converting BigInt/Number objects to mathematical values. 2. A change in how ToRawPrecision computes its exponent and significant digits. For (1), we do not yet support BigInt number formatting, thus already have coerced Number objects to a double. When BigInt is supported, the number passed into these methods will likely still be a Value, thus can be coereced then. For (2), our implementation already returns the expected edge-case results pointed out on the spec PR.
2022-01-02LibJS: Explicitly handle postive/negative infinity in Intl.NumberFormatTimothy Flynn
This is a normative change in the Intl spec: https://github.com/tc39/ecma402/commit/f0f66cf Our implementation is unaffected by this change. LibUnicode pre-computes positive, negative, and signless format patterns, so we already format negative infinity correctly. Also, the CLDR does not contain specific locale-dependent strings for negative infinity anyways.
2022-01-02LibGUI: Increase vertical padding on GUI::IconView item labels by 2pxAndreas Kling
Let's give the text a tiny bit of breathing room.
2022-01-02LibCore: Enforce correct mode when creating new passwd and shadow filesAndreas Kling
- Use umask() to prevent the parent process from tampering with the mode bits of replacement passwd and shadow files. - Use fchmod() to set new shadow files to mode 0600.
2022-01-02LibCore: Add Core::UmaskScope to set and unset a temporary umaskAndreas Kling
2022-01-02LibCore+id: Make more use of Core::System wrappers in Core::AccountAndreas Kling
2022-01-02LibCore: Add Core::System wrappers for getspent() and getspnam()Andreas Kling
2022-01-02LibCore: Add syscall wrappers for getpwuid() and getgrgid()Andreas Kling
2022-01-02LibCore: Add syscall wrapper for getgroups()Andreas Kling
This wrapper does all the grunt work of figuring out how many extra GIDs there are, and then returning them nicely wrapped in a Vector<gid_t>.
2022-01-02LibCore: Reset `errno` before using LibC pwd functionsAndreas Kling
We should not expect LibC functions to clear `errno` on success, so if we want to use it for error checking after a call, we need to clear it before the call.
2022-01-02rm: Check before removing '/'Lucas CHOLLET
A simple check to not erase '/' by mistake.
2022-01-02LibWeb: Support range syntax for media queriesSam Atkins
This means you can now do queries like: ```css @media (400px <= width < 800px) { } ``` Chromium and Firefox which I tested with both don't support this yet, so that's cool. :^)
2022-01-02LibWeb: Rewrite media-query parsing to match spec grammarSam Atkins
Past me decided that the grammar was overly verbose and I could do it better myself. Which seemed fine until the spec changed and I didn't know how to integrate the changes. Lesson learned! :^) Rather than have a function for every single part of the grammar, I have written some as lambdas, and combned `<media-condition>` and `<media-condition-without-or>` into one function. But otherwise it's close to the spec, with comments listing the part of the grammar being parsed, so hopefully it will be easier to make future adjustments! This does not add any new functionality.
2022-01-02LibWeb: Make MediaCondition a top-level type and add factory methodsSam Atkins
2022-01-02LibWeb: Make MediaFeature a top-level class and add factory methodsSam Atkins
Web::CSS::MediaQuery::MediaFeature::Type was getting a bit ridiculous! Also, this moves the detection of "min-" and "max-" media-features into the MediaFeature itself, since this is an implementation detail, not part of the spec.
2022-01-02LibWeb: Remove media-query-related identifiers from identifiers.jsonSam Atkins
Having these in here was a hack to support the other hack of making media-queries use StyleValues. Now they don't do that, so we can remove these again and keep things hygienic.
2022-01-02LibWeb: Introduce MediaFeatureValue type for use in media queriesSam Atkins
Previously, we were using StyleValues for this, which was a bit of a hack and was brittle, breaking when I modified how custom properties were parsed. This is better and also lets us limit the kinds of value that can be used here, to match the spec.
2022-01-02LibWeb: Update `<general-enclosed>` definition to match spec changeSam Atkins
See https://github.com/w3c/csswg-drafts/pull/6799
2022-01-02Calculator: Round small number to prevent crashLucas CHOLLET
Small numbers (smaller than 1e-19) can't be displayed in the calculator. They provoke a division by zero in Keypad::set_value(), as 10^20 overflows.
2022-01-02Calculator: Remove KeypadValue::operator>Lucas CHOLLET
This method was declared but not implemented, and will probably never be useful.
2022-01-02Calculator: Display zero with only one characterLucas CHOLLET
This patch prevents zero to be displayed as "0.00". The value is now always printed with only one character.
2022-01-02DisplaySettings: Add 1440p ultrawide resolutionFiliph Sandström
2022-01-02uptime: Port to LibMain :^)mjz19910
2022-01-02LibM: Count fractions when exponent < -1 with mantissa == 0sin-ack
Without this change, floor(-0.125) returned 0. This is because the number has a fraction part even if mantissa is zero while the unbiased exponent is negative. The names of some variables were also made clearer. Co-Authored-By: Daniel Bertalan <dani@danielbertalan.dev>
2022-01-02LibC: Support `X` modifier for `scanf`Jesse Buhagiar
This was currently crashing Half-Life because it was a considered an "Unknown" specifier. We can use the same case statement as the regular hex format conversion (lower case 'x'), as the backend to convert the number already supports upper/lower case input, hence we get it for free :^)
2022-01-01ThemeEditor: Add "alignment" supportFiliph Sandström