summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-09AK: Warn when trying to set `@foo@` as a SourceGenerator keySam Atkins
I was very confused why I was getting "no key named `foo`" errors, so hopefully this will save someone that confusion in the future. :^) (It'll probably be me again...)
2022-09-09Ports: Update Quake III's launcher nameJelle Raaijmakers
Following what is commonly used on the internet as the game's title, and making it consistent with Quake II.
2022-09-09Ports: Update launcher path to Quake IIJelle Raaijmakers
The launcher was not created as a result of the path not being absolute. Also set a more commonly used title for the launcher.
2022-09-09LibGUI: CommandPalette: Fix key event capture for actionsfaxe1008
This patch fixes an issue for applications that contain actions without a modifier (e.g. PixelPaint). Previously when pressing any key bound to an action while the CommandPalette was visible the action was forwarded to the parent instead of the CommandPalette.
2022-09-09Base: Update uniq(1) man pagedemostanis
2022-09-09uniq: Improve POSIX compliancedemostanis
Adds -d, -c, -i, -f and -s options. It differs a little bit from other implementations, but it does the trick and corresponds to POSIX's description
2022-09-09LibCore: Add File::open_file_or_standard_stream()demostanis
2022-09-09Meta: Download WASM spec tests using CMakeDiego Iastrubni
If we have a new CMake version - download the files using CMake API, instead of external tools.
2022-09-09Meta: Download uncompressed files instead of *.gzDiego Iastrubni
Problem: cmake cannot handle gzip files (see https://gitlab.kitware.com/cmake/cmake/-/issues/23054 for more details). Instead of downloading the compressed (*.gz) USB and PCI ids, we not download the raw uncompressed files. The sizes we "loose" due to downloading such files are meaningless. This are the file sizes: ``` diego@debian:~/$ ls -lh pci.ids{,.gz} usb.ids{,.gz} -rw-r--r-- 1 diego diego 1.3M Aug 7 04:15 pci.ids -rw-r--r-- 1 diego diego 300K Aug 7 04:15 pci.ids.gz -rw-r--r-- 1 diego diego 700K May 20 22:34 usb.ids -rw-r--r-- 1 diego diego 245K May 20 22:34 usb.ids.gz ```
2022-09-09Meta: Use CMake functions to extract filesDiego Iastrubni
Newer cmake's have internal functions to un-compress files. These functions will work on pure windows - as well as linux. This eliminates the need to search for external tools (TAR,GZIP,ZIP) - and helps fixing #9866. In order to finally fix #9866 we need to decide to bump the cmake version requirements and remove the checks. If we demand a newer cmake version, we will loose Ubuntu 20.04 as a build target - as it ships with CMake 3.16. For now - we keep compatibility with CMake 3.16 - and only if CMake 3.18 as been found - we use its new functionality.
2022-09-09Meta: Update jakt build support for fully bootstrapped compilerAndrew Kaster
Remove the Corrosion dependency, and use the now-builtin add_jakt_executable function from the Jakt install rules to build our example application. By using find_package(Jakt), we now have to set ENABLE_JAKT manually on both serenity and Lagom at the same time, so the preferred method to do this for now is: cmake -B Build/superbuild<arch><toolchain> \ -S Meta/CMake/Superbuild \ -DENABLE_JAKT=ON \ -DJAKT_SOURCE_DIR=/path/to/jakt Where omitting JAKT_SOURCE_DIR will still pull from the main branch of SerenityOS/jakt. This can be done after runing Meta/serenity.sh run.
2022-09-08WindowServer: Let Windows handle InputLeft events when blockedthankyouverycool
Fixes windows not updating on active input changes after being blocked
2022-09-08LibGUI: Only react on KeyDown when escaping a Dialogthankyouverycool
Both KeyEvents aren't necessary and erroneously close two Dialogs at once.
2022-09-08LibGUI+WindowServer: Notify Windows on input preemptionthankyouverycool
Previously Menus set themselves as active input solely to make sure CaptureInput modals would close, but this is a functional half-truth. Menus don't actually use the active input role; they preempt normal Windows during event handling instead. Now the active input window is notified on preemption and Menus can remain outside the active input concept. This lets us make more granular choices about modal behavior. For now, the only thing clients care about is menu preemption on popup. Fixes windows which close on changes to active input closing on their own context menus.
2022-09-08WindowServer: Add unadjusted position members to Menuthankyouverycool
Used to determine Menu relationships by proxy
2022-09-08LibGUI: Add Unicode emoji group filters to the EmojiInputDialogTimothy Flynn
This allows users to filter the list of displayed emoji by the group to which the emoji belong.
2022-09-08LibGUI: Display emoji in the EmojiInputDialog in Unicode display orderTimothy Flynn
2022-09-08LibGUI: Add placeholder text to the emoji picker search boxTimothy Flynn
Co-authored-by: electrikmilk <brandonjordan124@gmail.com>
2022-09-08LibUncode: Parse and generate emoji code point dataTimothy Flynn
According to TR #51, the "best definition of the full set [of emojis] is in the emoji-test.txt file". This defines not only the emoji themselves, but the order in which they should be displayed, and what "group" of emojis they belong to.
2022-09-08Spreadsheet: Add Insert Emoji actionelectrikmilk
This adds the Insert Emoji action to Spreadsheet.
2022-09-08TextEditor: Add Insert Emoji actionelectrikmilk
This adds the Insert Emoji action to Text Editor.
2022-09-08Base+LibGUI: Add insert emoji common actionelectrikmilk
This adds a common action to invoke the emoji picker.
2022-09-08Ports: Update serenity-theming use latest commit 3b4e1f2djwisdom
2022-09-08AK: Allow creating NonnullPtrVectors from an initializer listSam Atkins
This was present in Vector already. Clang-format fixed some const positions automatically too. Also removed a now-ambiguous and unnecessary constructor from Shell.
2022-09-08Ports: Build Quake in parallelJelle Raaijmakers
Instead of overwriting the existing `-j` makeopt, we only append options. This brings the build time for the Quake port down from 24.3s to 4.4s on my machine.
2022-09-08LibSoftGPU: Use approximation for maximum depth slopeJelle Raaijmakers
OpenGL allows GPUs to approximate a triangle's maximum depth slope which prevents a number computationally expensive instructions. On my machine, this gives me +6% FPS in Quake III. We are able to reuse `render_bounds` here since it is the containing rect of the (X, Y) window coordinates of the triangle, thus its width and height are the maximum delta X and delta Y, respectively.
2022-09-08LibGL: Set correct color material mode for `GL_AMBIENT_AND_DIFFUSE`Jelle Raaijmakers
This was a silly mistake :^)
2022-09-08LibWeb: Rename confusing parameter to layout_block_level_box()Andreas Kling
It wasn't the content height, but rather the the bottom edge of the lowest margin box.
2022-09-08LibWeb: Use correct box edge when looking for space between floatsAndreas Kling
2022-09-08Base: Add more emojiXexxa
๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ - U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 FAMILY: MAN, WOMAN, GIRL, BOY ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ - U+1F468 U+200D U+1F469 U+200D U+1F466 U+200D U+1F466 FAMILY: MAN, WOMAN, BOY, BOY ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง - U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F467 FAMILY: MAN, WOMAN, GIRL, GIRL ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ - U+1F468 U+200D U+1F468 U+200D U+1F467 U+200D U+1F466 FAMILY: MAN, MAN, GIRL, BOY ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ - U+1F468 U+200D U+1F468 U+200D U+1F466 U+200D U+1F466 FAMILY: MAN, MAN, BOY, BOY ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง - U+1F468 U+200D U+1F468 U+200D U+1F467 U+200D U+1F467 FAMILY: MAN, MAN, GIRL, GIRL ๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ - U+1F469 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 FAMILY: WOMAN, WOMAN, GIRL, BOY ๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ - U+1F469 U+200D U+1F469 U+200D U+1F466 U+200D U+1F466 FAMILY: WOMAN, WOMAN, BOY, BOY ๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง - U+1F469 U+200D U+1F469 U+200D U+1F467 U+200D U+1F467 FAMILY: WOMAN, WOMAN, GIRL, GIRL
2022-09-08LibWeb: Make default CSS font settings match other browsers betterAndreas Kling
Let's make 16px the default font size instead of 10px. This makes our layout results match those of other engines in many more cases. Also make the h1-h6 element styles use relative (em) font sizes, also matching other browsers.
2022-09-08LibGfx: Add API for loading more directories into Gfx::FontDatabaseAndreas Kling
Also make the font discovery algorithm search subdirectories as well. This will be used by Ladybird to discover more fonts on non-Serenity systems. :^)
2022-09-08LibWeb+WebContent: Add abstraction layer for generic font familiesAndreas Kling
Instead of hard-coding the names of system fonts to use for the CSS generic fonts (like "sans-serif", "monospace", etc.) we now call out to a Platform::FontPlugin and ask for the generic names.
2022-09-08LibWeb: Make anonymous wrapper blocks actually have "display: block"Andreas Kling
We didn't set their display at all before, and since CSS display is not inherited, anonymous block wrappers were actually "display: inline", but it kinda worked anyway because we positioned blocks based on their C++ class (BlockContainer) rather than their CSS display value. Now that we position based on CSS display value, this broke positioning of anonymous wrapper blocks, and this fixes that.
2022-09-08WindowServer: Set rendered cache dirty on maximization eventthankyouverycool
Fixes restore/maximize icon not updating when the cursor overlaps window frame on restoration.
2022-09-08Browser+LibGUI+WindowServer: Open Button menus uniformlythankyouverycool
Instead of letting buttons determine the relative position of their menus, a workaround only used by Statusbar segments, open them all uniformly for a nice, consistent UI. Passing a rect to popup() now routes to open_button_menu(), an analog to open_menubar_menu(), which adjusts the menu's popup position in the same way. Fixes button menus obscuring the buttons which spawn them and jutting out at odd corners depending on screen position.
2022-09-08LibGUI: Simulate a click on arrow key events for AbstractButtonsthankyouverycool
in exclusive, checkable groups. Instead of merely setting the button checked, call click() so buttons with registered actions can activate. Fixes ActionGroups like FileManager's view type checkables not activating when cycled with the keyboard.
2022-09-08Taskbar: Set TaskbarButton checkablethankyouverycool
2022-09-08LibGUI+Taskbar: Don't immediately repaint checkable Buttonsthankyouverycool
Unlike regular buttons, unchecked checkables don't need to repaint on MouseUp to feel responsive when clicking rapidly. In fact, this can lead to a flickering effect when a bogus unchecked state gets painted again before the button's checked one.
2022-09-08Base: Add Assembly file type iconelectrikmilk
This adds 16x16 and 32x32 file type icons for assembly files.
2022-09-08Browser: Add context menu iconselectrikmilk
This adds two new icons for browser context menu items "Close Other Tabs" and "Download". This adds existing icons where they were missing in context menu items.
2022-09-08Base: Add 12 new emojiselectrikmilk
๐Ÿชฒ - U+1FAB2 BEETLE ๐Ÿฐ - U+1F370 SHORTCAKE ๐Ÿš˜ - U+1F698 ONCOMING AUTOMOBILE ๐Ÿ”” - U+1F514 BELL ๐Ÿ”• - U+1F515 BELL WITH SLASH ๐Ÿงผ - U+1F9FC SOAP โœ–๏ธ - U+2716 MULTIPLY โž• - U+2795 PLUS โž– - U+2796 MINUS โž— - U+2797 DIVIDE ๐Ÿ“› - U+1F4DB NAME BADGE โœ”๏ธ - U+2714 CHECK MARK
2022-09-08Base: Improve 4 emojiselectrikmilk
๐Ÿšฅ - U+1F6A5 HORIZONTAL TRAFFIC LIGHT ๐Ÿšฆ - U+1F6A6 VERTICAL TRAFFIC LIGHT ๐Ÿ“ - U+1F4CD ROUND PUSHPIN ๐Ÿ—„๏ธ - U+1F5C4 FILE CABINET
2022-09-08LibWeb: Position blocks after previous block-level box, ignoring typeAndreas Kling
Before this change, block-level boxes were laid out vertically by placing them after the nearest previous BlockContainer sibling. This only worked if the preceding block-level box happened to be a BlockContainer. This fixes an issue where the screenshot on netsurf-browser.org was not being laid out properly (it was `img { display: block }` which creates a block-level ImageBox, and ImageBox is not a BlockContainer but a ReplacedBox, so the following block-level box was skipping over the ImageBox and being placed next to whatever was before the ImageBox..)
2022-09-08LibJS+LibWeb: Spin event loop via VM::CustomData abstractionAndreas Kling
Instead of calling Core::EventLoop directly, LibJS now has a virtual function on VM::CustomData for customizing this behavior. We use this in LibWeb to plumb the spin request through to the PlatformEventPlugin.
2022-09-07LibWeb+WebContent: Add abstraction layer for event loop and timersAndreas Kling
Instead of using Core::EventLoop and Core::Timer directly, LibWeb now goes through a Web::Platform abstraction layer instead. This will allow us to plug in Qt's event loop (and QTimer) over in Ladybird, to avoid having to deal with multiple event loops.
2022-09-07Base: Add five more emojisdjwisdom
๐Ÿ˜ - U+1F358 Rice Cracker ๐Ÿค - U+1F364 Fried Shrimp ๐Ÿป - U+1F37B Clinking beer mugs ๐Ÿฅ - U+1F365 Fish cake with swirl ๐Ÿผ - U+1F37C Baby bottle
2022-09-07LibWeb: Only schedule ImageStyleValue resource load onceAndreas Kling
load_any_resources() may get called multiple times during layout, but once we've started a resource load, we don't need to do it again.
2022-09-07LibWeb: Cache width of "alt" text in ImageBoxAndreas Kling
We were constantly measuring and re-measuring the "alt" attribute text of ImageBox layout nodes, even when the alt text didn't change. By caching this, we avoid a *lot* of repeated text measurement work.
2022-09-07LibWeb: Improve `float: right` behaviorAndreas Kling
- Use the border box of the floated element when testing if something needs to flow around it. - Take the floated element's containing block size into account (instead of the BFC root) when calculating available space on a line where a right-side float intrudes.