summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-26WindowServer+LibGUI: Show action icons in the menus when possibleAndreas Kling
Any GAction that has an icon assigned will now show up with that icon when added to a menu as well. I made the menu items 2px taller to accomodate the icons. I think this turned out quite nice as well :^)
2019-08-26WindowServer: Improved look of checkable menu itemsAndreas Kling
Paint a little checkbox frame for checkable items to make it obvious that they are indeed checkable. This looks quite nice :^) We also now shift all menu items to the right if we have any checkable items in the menu.
2019-08-26TextEditor: Move all "File" menu entries into the app menu insteadAndreas Kling
It felt weird to have both the app menu *and* a "File" menu.
2019-08-26Revert "Kernel: Avoid a memcpy() of the whole block when paging in from inode"Andreas Kling
This reverts commit 11896d0e26555b8090540b04b627d43365aaec2e. This caused a race where other processes using the same InodeVMObject could end up accessing the newly-mapped physical page before we've actually filled it with bytes from disk. It would be nice to avoid these copies without breaking anything.
2019-08-26Kernel: Never forcibly page in entire executablesAndreas Kling
We were doing this for the initial kernel-spawned userspace process(es) to work around instability in the page fault handler. Now that the page fault handler is more robust, we can stop worrying about this. Specifically, the page fault handler was previous not able to handle getting a page fault in anything but the currently executing task's page directory.
2019-08-26Kernel: Display virtual addresses as V%p instead of L%xAndreas Kling
The L was a leftover from when these were called linear addresses.
2019-08-26LibThread: Move CLock to LibThread::LockSergey Bugaev
And adapt all the code that uses it.
2019-08-26LibCore: Remove CThreadSergey Bugaev
It's been replaced with Thread::Thread.
2019-08-26LibGUI: Port threading to LibThreadSergey Bugaev
2019-08-26WindowServer: Port threading to LibThreadSergey Bugaev
2019-08-26AudioServer: Port threading to LibThreadSergey Bugaev
2019-08-26Piano: Port threading to LibThreadSergey Bugaev
2019-08-26LibThread: Introduce a new threading librarySergey Bugaev
This library is meant to provide C++-style wrappers over lower level APIs such as syscalls and pthread_* functions, as well as utilities for easily running pieces of logic on different threads.
2019-08-25TextEditor: Select everything in the find textbox when pressing Ctrl+FAndreas Kling
This allows you to press Ctrl+F and immediately start typing a new search string, instead of having to remove the old one first. :^)
2019-08-25LibGUI+TextEditor: Make GButton activate its action if presentAndreas Kling
Previously even if you assigned a GAction to a GButton, you still had to activate() the action manually by hooking the GButton::on_click callback.
2019-08-25TextEditor: Add actions for find next/previous (Ctrl+G, Ctrl+Shift+G)Andreas Kling
2019-08-25TextEditor: Add search-related actions to the text editor context menuAndreas Kling
Using the new GTextEditor::add_custom_context_menu_action() mechanism. Fixes #478.
2019-08-25GTextEditor: Add add_custom_context_menu_action()Andreas Kling
This allows embedders to add their own custom GAction set to a text editor's context menu.
2019-08-25Terminal: Fixed bounding issue when clearing the selection on typerhin123
We were checking the columns of the whole selection instead of the the specfic line were modifying. Because of this, the selection remained if the selection's column on another line was less than the cursor.
2019-08-25FileSystem: Add FIXME about resolve_path bugRok Povsic
2019-08-25Userland: Add realpathRok Povsic
2019-08-25LibC: Add realpathRok Povsic
2019-08-25Kernel: Add realpath syscallRok Povsic
2019-08-25AK: Make HashTable.h compile inside the SDL2 portAndreas Kling
2019-08-25LibDraw: Fix wrong installation pathAndreas Kling
2019-08-25Kernel: Avoid a memcpy() of the whole block when paging in from inodeAndreas Kling
2019-08-25GTextEditor: Simplify computation of visual selection start/endAndreas Kling
Add Line::visual_line_containing(int column) to easily convert a column number into a visual line index.
2019-08-25TextEditor: Add a menu action for turning line-wrapping on/offAndreas Kling
2019-08-25GTextEditor: Relayout when the line-wrapping setting is changedAndreas Kling
2019-08-25Ports/ncurses: Unbreak patch so we can build with latest ncurses masterAndreas Kling
Maybe we should build a specific version of ncurses instead but this at least makes it work again for now.
2019-08-25Meta: Add funding links to get a "Sponsor" button on GitHubAndreas Kling
2019-08-25Meta: Add note about the first line of commit messages to contrib guideAndreas Kling
2019-08-25GTextEditor: Unbreak selection painting in the new line-wrapping worldAndreas Kling
To expand a bit on how the line-wrapping works, each physical line of text is broken up into multiple visual lines. This is recomputed when the document changes, or when the widget is resized. Each GTextEditor::Line keeps track of the visual breaking points, and also their visual rect in content coordinates. This allows us to do painting and hit testing reasonably efficiently for now. This code needs some cleanup, but it's finally in a working state, so here it goes. :^)
2019-08-25GTextEditor: Fix computing content x/rect values with line wrappingAndreas Kling
This makes the cursor actually get painted on the right visual line when in line-wrapping mode.
2019-08-25GTextEditor: Take horizontal padding into account for line visual rectsAndreas Kling
2019-08-25GTextEditor: Start working on a line-wrapping featureAndreas Kling
This is not finished, but since the feature is controlled by a runtime flag, the broken implementation should not affect users of this widget too much (in theory :^).)
2019-08-25Terminal: Clear selection if we type behind/inside itrhin123
2019-08-25GTextEditor: Clean up some of the rect computationsAndreas Kling
Moving some rect computations to separate functions to make it easier to reuse them.
2019-08-25Ext2FS: Avoid a String allocation in lookup()Andreas Kling
By using find() with a custom finder, we can avoid creating a temporary key value that's only used for the hash lookup.
2019-08-25AK: Add StringView::hash()Andreas Kling
This grabs the hash from the underlying StringImpl if there is one, otherwise it's computed on the fly.
2019-08-25AK: Add HashMap::find() with customizable finder callbackAndreas Kling
This will allow clients to search the map without having to instantiate a key value.
2019-08-25AK: Add String::operator==(StringView)Andreas Kling
Comparing a String to a StringView would instantiate a temporary String just for the comparison. Let's not do that. :^)
2019-08-25Kernel: Don't create a String every time we look up a Custody by nameAndreas Kling
2019-08-25AK: Optional::operator bool() should consume the OptionalAndreas Kling
We use consumable annotations to catch bugs where you get the .value() of an Optional before verifying that it's okay. The bug here was that only has_value() would set the consumed state, even though operator bool() does the same job.
2019-08-24TextEditor: Replaced 'Find' button with 'Prev' and 'Next' buttons.Andrew Weller
2019-08-24TmpFS: Notify any associated InodeVMObject on inode changesAndreas Kling
2019-08-24TmpFS: Fix two bugs that broke GCC inside SerenityAndreas Kling
- TmpFSInode::write_bytes() needs to allow non-zero offsets - TmpFSInode::read_bytes() wasn't respecting the offset GCC puts the temporary files generated during compilation in /tmp, so this exposed some bugs in TmpFS.
2019-08-24Kernel: Fix oversized InodeVMObject after inode size changesAndreas Kling
2019-08-24KBuffer: capacity() should return internal capacity, not internal sizeAndreas Kling
KBuffer is just meant to be a dumb wrapper around KBufferImpl. With this change, we actually start to see KBuffers with different size and capacity, which allows some reallocation-avoiding optimizations.
2019-08-24Userland: Remove unnecessary output from "rm"Andreas Kling