summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-16WindowServer+LibGUI: Allow switching windows in/out of fullscreen modeAndreas Kling
You can now call GWindow::set_fullscreen(bool) and it will go in or out of fullscreen mode. WindowServer will also remember the previous window rect when switching to fullscreen, and restore it when switching back. :^)
2019-09-16Kernel: Fix some bitrot in MemoryManager debug logging codeAndreas Kling
2019-09-16Kernel: Add a simple slab allocator for small allocationsAndreas Kling
This is a freelist allocator with static size classes that works as a complement to the generic kmalloc(). It's a lot faster than kmalloc() since allocation just means popping from the freelist. It's also significantly more compact when there are a lot of objects smaller than the minimum kmalloc chunk size (32 bytes.) This patch enables it for the Region and PhysicalPage classes. In the PhysicalPage (8 bytes) case, it's a huge improvement since we no longer waste 75% of the storage allocated. There are also a number of ways this can be improved, so let's keep working on it going forward.
2019-09-16Kernel: Move kmalloc() into a Kernel/Heap/ directoryAndreas Kling
2019-09-16Terminal: Scroll cursor into view when typing (#568)Jesse
When the user has scrolled up and begins typing, the scrollbar will automatically return them to the current cursor position so that they can see what they're typing.
2019-09-16DisplayProperties: Auto-resolution and graphical fix (#566)Jesse
The program will now automatically select the user's currently chosen resolution when it is loaded up, however it is not "visually selected" in the `GListView` Moved the `resolution_list` list to be on the top to keep it consistent with the wallpaper tab.
2019-09-16LibGUI: Fix move() of const StringView&Conrad Pankoff
2019-09-16Applications: Add "Welcome" application, inspired by Windows 98Conrad Pankoff
2019-09-16Meta: Add a LINK alias to the common makefile for running ld explicitlyConrad Pankoff
2019-09-16PNGLoader: Add load_png_from_memory methodConrad Pankoff
2019-09-15SystemServer: Drop GID before dropping UIDAndreas Kling
Otherwise the setgid() will fail :^)
2019-09-15Kernel: Add LogStream operator<< for PhysicalAddressAndreas Kling
2019-09-15Kernel: Get rid of MemoryManager::allocate_page_table()Andreas Kling
We can just use the physical page allocator directly, there's no need for a dedicated function for page tables.
2019-09-15Shell: Tab completion for programs in PATHwillmcpherson2
This patch adds a function to LineEditor that takes the current shell buffer, searches PATH for the first program that starts with that buffer and then compares that to any other programs starting with the buffer to remove any mismatching characters off the end. The result is appended to the buffer. This may be faster with a data structure but that seems overkill.
2019-09-15FileManager: Show human-readable file size info in the status barAndreas Kling
Fixes #553.
2019-09-15Shell: Fixed `pushd` and `popd`Jesse Buhagiar
Fixed a few issues with both `pushd` and `popd`. There was a few typos etcetera causing it to behave errantly in certain situations.
2019-09-15GItemView: Elide item names that won't fitAndreas Kling
This isn't perfect since now you will just see "Long name..." instead of the whole name, but at least it doesn't look totally wrong either.
2019-09-15Utf8View: Don't print potentially unterminated string in debug messageAndreas Kling
2019-09-15Shell: Added `pushd`, `popd` and `dirs` builtinsJesse Buhagiar
Added a few builtin functions to the shell to make navigating a bit easier in the terminal. `pushd` allows a user to "push" the current directory to the directory stack, and then `cd` to the new directory. `popd` allows the used to take the directory on the top of the stack off before `cd`'ing to it. `dirs` gives the state of the current directory stack. This is only a partial implementation of the `bash` version (gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html) , and doesn't include any of the +N or -N commands as of yet.
2019-09-15Kernel: Implement shebang executables ("#!/bin/sh")Andreas Kling
This patch makes it possible to *run* text files that start with the characters "#!" followed by an interpreter. I've tested this with both the Serenity built-in shell and the Bash shell, and it works as expected. :^)
2019-09-14LibGUI+VisualBuilder: Add move-to-front/back to GCommonActionsAndreas Kling
Also give them nice little icons. :^)
2019-09-14VisualBuilder: Use GCommonActions::make_delete_action()Andreas Kling
2019-09-14LibGUI: Add Undo/Redo to GCommonActionsAndreas Kling
2019-09-14LibGUI: Simplify GCommonActions a bitAndreas Kling
Use the same callback signature as GAction so we can just forward it to GAction instead of chaining callbacks.
2019-09-14Shell: Support extremely naive shell script executionAndreas Kling
This patch allows passing a script as an argument to the Shell program. We will read the specified line by line and pass them through the Shell command interpreter. This is not very powerful, but it's a start :^)
2019-09-14Kernel: Stop idling after handling an IRQAndreas Kling
If we receive an IRQ while the idle task is running, prevent it from re-halting the CPU after the IRQ handler returns. Instead have the idle task yield to the scheduler, so we can see if the IRQ has unblocked something.
2019-09-14Kernel: Fix bad assertion in Lock::unlock_if_locked()Andreas Kling
We shouldn't assert if you call this on a Lock held by another Thread in the same Process. Instead, we should just not unlock.
2019-09-14DisplayProperties: Wallpaper tab now has previewJesse Buhagiar
As was mentioned in #556, the `DisplayProperties` Wallpaper tab contained a lot of "extra space", in which half the tab was taken up by the list of wallpapers. The rest of that space is now reserved for a wallpaper preview, so the user can see the selected image before applying it.
2019-09-14Shell: Add POSIX-compliant character escapingAaron Malpas
POSIX.1-2017, Shells & Utilities, section 2.2
2019-09-14LibC: Implement mkdtemp library functionMauri de Souza Nunes
2019-09-14LibC: Make gettid() cache the thread ID in thread-local-storageAndreas Kling
This makes gettid() very cheap, compared to the cost of having to do a syscall every time.
2019-09-14GraphicsBitmap: Allow constructing a wrapper bitmap around 8-bit pixelsAndreas Kling
This will be very useful for optimizing games like DOOM. :^)
2019-09-14Ports: Remove now-unnecessary DOOM patchAndreas Kling
Now that we're building our own DOOM fork, we don't need any patches.
2019-09-14Ports: Point doom port to our own SerenityDOOM forkAndreas Kling
This will make it easier to make improvements to the port.
2019-09-14FileManager: Use a special clipboard data type for copied file listsAndreas Kling
When copying a list of files to the clipboard, we now use the special data type "file-list". This allows us to have the paste action's enabled state reflect the actual ability to paste something. :^)
2019-09-14WindowServer+LibGUI: Store a "data type" with the clipboard contentAndreas Kling
This will allow us to distinguish between different types of data stored on the clipboard.
2019-09-13TextEditor+Base: Add an icon for the "Find" action :^)Andreas Kling
2019-09-13FileManager+Base: Add "properties" iconAndreas Kling
Something to show for the properties action in FileManager. It still doesn't actually do anything, but at least now it looks neat. :^)
2019-09-13Base: Add a 16x16 icon for sound filesAndreas Kling
2019-09-13GMenu: Update apps now that you can create a nameless GMenuAndreas Kling
We had many context menus with names, simply because you were forced to give them names.
2019-09-13FileManager: Update enabled state of the copy and delete actionsAndreas Kling
Based on whether something is selected or not. I added a FIXME about the paste action, since that will require some more coordination with the system clipboard.
2019-09-13FileManager: Assign keyboard shortcuts to the various actionsAndreas Kling
2019-09-13FileManager: Add a basic context menu with copy/paste/delete/...Andreas Kling
I also added a dummy "Properties..." action just to fill out the menu a little bit. :^) Fixes #270.
2019-09-13LibGUI: Tweak selection modification behavior on context menu eventAndreas Kling
Before bringing up the context menu, clicking... - ...on an already selected item leaves selection alone - ...on an unselected item makes it the only selected item - ...outside any item clears the selection
2019-09-13GDirectoryModel: Add on_path_change hookAndreas Kling
2019-09-13GItemView: Add context menu supportAndreas Kling
Also, use the model_column() internally for selection as well as for painting to keep things consistent. Note that we always fire the on_context_menu_request hook, even if you didn't click on an item. In those cases, you get a GModelIndex().
2019-09-13GMenu: Allow constructing without a nameAndreas Kling
We'll just default to "", which works fine for context menus.
2019-09-13Kernel: Move fchdir to end of enumerate syscalls.Drew Stratford
The introduction fchdir in the middle of the EUMERATE_SYSCALLS expression changed other syscall numbers, which broke compatibility. This commit fixes that by moving it to the end.
2019-09-13Shell: fix crash when using `cd -` and OLDPWD is nullTim Morgan
2019-09-13Emoji: Add some simple emojis I drew on the trainAndreas Kling
We're gonna need a lot more of these, and I don't know if the size is quite right, but here's a start. :^)