Commit graph

1997 commits

Author SHA1 Message Date
Andreas Kling
c02c6fef28 Kernel+ProcessManager: Show per-process syscall counts.
Added a simple syscall counter to the /proc/all contents. :^)
2019-04-17 23:16:14 +02:00
Andreas Kling
c59f8cd663 Kernel: Scheduler donations need to verify that the beneficiary is valid.
Add a Thread::is_thread(void*) helper that we can use to check that the
incoming donation beneficiary is a valid thread. The O(n) here is a bit sad
and we should eventually rethink the process/thread table data structures.
2019-04-17 12:41:51 +02:00
Andreas Kling
6bb0dbe8bf Kernel: Lock::unlock_if_locked() should never donate to holder.
Since we're not interested in taking the lock if it's already held,
there's no need to donate the remainder of our time slice to the holder.
2019-04-17 12:37:44 +02:00
Andreas Kling
18ef6b111b WindowServer: Mouse switching between system menu and app menu was broken. 2019-04-17 12:06:09 +02:00
Andreas Kling
b77f9a5042 VisualBuilder: Pressing the Tab key when there are no widgets is a no-op. 2019-04-16 23:19:19 +02:00
Andreas Kling
428cae7864 VisualBuilder: Pressing the Tab key when there are no widgets is a no-op. 2019-04-16 23:17:14 +02:00
Andreas Kling
ef8c613737 VisualBuilder: Share code for setting the selected widget.
This fixes an issue where the properties window didn't update when selecting
a new widget using the keyboard shortcuts. :^)
2019-04-16 23:11:35 +02:00
Andreas Kling
f7157520eb VisualBuilder: Add some keyboard navigation support.
Allow selecting widgets using the Tab key, and moving them around
using the arrow keys. :^)
2019-04-16 23:01:37 +02:00
Andreas Kling
ac324f14b8 GWidget: Add move_by() and make set_relative_rect() invalidate parent. 2019-04-16 22:59:27 +02:00
Andreas Kling
486ed41fd2 WindowServer: Tweak window icon placement. 2019-04-16 22:37:46 +02:00
Andreas Kling
8251f97858 Terminal: Add a window icon. 2019-04-16 17:55:39 +02:00
Andreas Kling
29abfc8623 ProcessManager: Add a window icon. 2019-04-16 17:55:27 +02:00
Andreas Kling
86361d3d45 WindowServer: Improve the look of menus.
This patch makes menus stand out a bit more from their background by using
the same kind of shading that Windows 2000 had.
2019-04-16 17:02:26 +02:00
Andreas Kling
311019d8ee WindowServer: Don't waste time pre-filling windows with background color.
There's a subsequent pass that fills whatever the backing store didn't
cover anyway, just a few lines later. This was all wasted work.
2019-04-16 15:10:57 +02:00
Andreas Kling
f61549ca5f Make better use of geometry class helpers in some places. 2019-04-16 13:58:02 +02:00
Andreas Kling
952f334de7 GWidget: Tidy up the hit-testing code somewhat. 2019-04-16 13:25:00 +02:00
Andreas Kling
c812d63ea6 GWidget: Remove unnecessary extra parent lookup in move_to_{back,front}(). 2019-04-16 04:01:14 +02:00
Andreas Kling
52e846df87 VisualBuilder: Make it possible to move widgets to front/back. 2019-04-16 03:52:26 +02:00
Andreas Kling
04500c1ae2 GWidget: Add some new child z-ordering facilities.
- child_at(Point)
- move_to_front()
- move_to_back()
- is_frontmost()
- is_backmost()

This patch also makes it possible to receive the mouse event that triggers
a context menu before the context menu is shown. I'm not sure this is the
best design for context menus but it works for now.
2019-04-16 03:47:55 +02:00
Andreas Kling
d31b47b371 AK: Add Vector::prepend(). 2019-04-16 03:47:24 +02:00
Andreas Kling
73c70e5d2e GTableView: Remove the old-style focus rect. 2019-04-16 03:04:14 +02:00
Andreas Kling
33920df299 AK: Try to use StringViews more for substrings and splitting. 2019-04-16 02:39:16 +02:00
Andreas Kling
a082738f04 SharedGraphics: Move PainterStateSaver out of line. 2019-04-16 01:01:03 +02:00
Andreas Kling
b5759089d8 LibCore: Add CIODevice::seek(). 2019-04-16 00:51:05 +02:00
Andreas Kling
1debc0a78c Kernel: Reduce kmallocing in all_processes() and all_pids(). 2019-04-16 00:37:35 +02:00
Andreas Kling
2533e0b57b Kernel: Reduce kmallocing in /proc/all and /proc/memstat. 2019-04-16 00:36:17 +02:00
Andreas Kling
88f03f86ff Kernel: Have TTY subclasses cache their tty_name/pts_name. 2019-04-16 00:35:02 +02:00
Andreas Kling
d384c7815f Kernel: Make it possible to have kmalloc() dump call stacks.
This can be enabled at any time using a sysctl:

    sysctl kmalloc_stacks=1

The stacks will go to the debugger output only.
2019-04-15 23:58:48 +02:00
Andreas Kling
bc6ac1c2f2 WindowServer: Let the CPU monitor keep /proc/all open between refreshes.
Just seek to the beginning on every iteration and start over. This avoids
a bunch of syscalls.
2019-04-15 23:57:31 +02:00
Andreas Kling
30b0e5f82e AK: Make StringBuilder::appendf() pre-allocate the format string length. 2019-04-15 23:56:35 +02:00
Andreas Kling
fa89446cb6 Kernel: Make symbolication callable from kmalloc().
It wasn't possible to symbolicate from kmalloc(), since symbolication would
call kmalloc(). :^)
2019-04-15 23:50:25 +02:00
Andreas Kling
ae0dc22716 Kernel: Make validate_read_from_kernel() return early for nullptr checks.
Null pointers are always invalid, so don't bother going through all the
various checks for them.
2019-04-15 23:48:31 +02:00
Andreas Kling
9eab8734fe PNGLoader: Disable debug spam. 2019-04-15 23:47:42 +02:00
Andreas Kling
e9c0f4567d Kernel+ProcessManager: Expose the number of kmalloc/kfree calls.
This will be very helpful in tracking down unwanted kmalloc traffic. :^)
2019-04-15 19:43:12 +02:00
Andreas Kling
13041f894f Kernel: Start using StringView in the VFS class.
The less kmalloc() we can do, the better. Calling kmalloc() disables all
interrupts while it runs, so it's directly affecting responsiveness.
2019-04-15 14:57:27 +02:00
Andreas Kling
461aa550eb AK: Add a StringView class. 2019-04-15 14:56:37 +02:00
Andreas Kling
7972303405 Meta: Oops, screwed up one of the links. 2019-04-15 14:17:44 +02:00
Andreas Kling
d4211ede31 Meta: Update ReadMe with license and links. 2019-04-15 14:16:45 +02:00
Andreas Kling
ddcaf02a57
Let's go with a 2-clause BSD license. 2019-04-15 14:04:23 +02:00
Andreas Kling
87c4d2bc92 Userland: Add a /bin/basename program. 2019-04-15 13:57:09 +02:00
Andreas Kling
024057b39a Userland: Make sync.sh copy all executables from ../Userland 2019-04-15 13:53:27 +02:00
Andreas Kling
c8e601a5d5 Minesweeper: Add little icons to the flags and timer labels. 2019-04-15 03:12:28 +02:00
Andreas Kling
791e8f5bb0 Minesweeper: Paint a grid pattern below the mines. 2019-04-15 02:45:04 +02:00
Andreas Kling
bc5148354f LibCore: Add a CConfigFile class, a simple INI file parser.
You open the configuration for an app like so:

    auto config = CConfigFile::get_for_app("MyApp");

This will then open ~/MyApp.ini and parse it for you.
Immediately start using it in Minesweeper to load the field size and mine
count from a config file.
2019-04-15 02:23:20 +02:00
Nicolas Van Bossuyt
37c27e2e39 Userspace: gitignore binaries 2019-04-15 00:35:37 +02:00
Andreas Kling
1503834c3b Minesweeper: Add flag counter and game timer. 2019-04-14 21:01:52 +02:00
Andreas Kling
adc91d92a3 Userland: Oops, that merge broke the build, just needed a few tweaks. :^) 2019-04-14 20:32:44 +02:00
Andreas Kling
16ef7517c4
Merge pull request #6 from NicolasVanBossuyt/patch-1
Userland: Making the makefile smarter.
2019-04-14 20:16:07 +02:00
Nicolas Van Bossuyt
40e710da3d
Userland: Maybe find is overkill 2019-04-14 20:15:29 +02:00
Nicolas Van Bossuyt
dfeeaff237
Userland: making the makefile smarter 2019-04-14 19:58:25 +02:00