Commit graph

1327 commits

Author SHA1 Message Date
Andreas Kling
3729f7cc6a About: Use Katica Bold for displaying the system name. :^) 2019-03-06 22:39:49 +01:00
Andreas Kling
495c4f940d WindowServer: Only the left mouse button should initiate window drag. 2019-03-06 22:38:19 +01:00
Andreas Kling
eedfb2649e WindowServer: Tweak appearance of window close buttons. 2019-03-06 22:36:37 +01:00
Andreas Kling
5773b91a04 WindowServer: Use the right font for computing titlebar text rects. 2019-03-06 22:34:45 +01:00
Andreas Kling
e56fe71dbc Kernel: And some more KResult/KResultOr<T> porting work. 2019-03-06 22:30:13 +01:00
Andreas Kling
028afabf6b Kernel: Port more code to KResult and KResultOr<T>. 2019-03-06 22:14:31 +01:00
Andreas Kling
3079ef01ce Userland: /bin/cp needs to handle open(dst) failing with EISDIR. 2019-03-06 20:28:00 +01:00
Andreas Kling
e6f389a544 Kernel: Add two error checks for open() to return EISDIR or ENODEV. 2019-03-06 20:27:19 +01:00
Andreas Kling
7d46375690 Userland: Support "cp foo somedirectory"
Don't overwrite the literal directory inode contents when copying a file
to a directory, duh. :^)
2019-03-06 20:22:23 +01:00
Andreas Kling
d75897708b Base: Tweak Katica system menu glyph. 2019-03-06 20:04:52 +01:00
Andreas Kling
2950d33c76 ProcessManager: Tweak priority icons. 2019-03-06 20:03:10 +01:00
Andreas Kling
7df1121e1c LibGUI: GTableModel::data() should take a GModelIndex instead of int,int. 2019-03-06 19:56:47 +01:00
Andreas Kling
dc4e6dd7bc LibGUI: Fix LibGUI::to_string() for GVariant::Type::Float. 2019-03-06 19:49:59 +01:00
Andreas Kling
09ecef6299 GTableView: Ignore right clicks for now. 2019-03-06 19:44:18 +01:00
Andreas Kling
f3341d2ae7 Base: Tweak Katica and Katica Bold glyphs. 2019-03-06 19:41:36 +01:00
Andreas Kling
b46c7da0a4 FontEditor: Don't crash when clicking on the unused part of a glyph. 2019-03-06 19:04:30 +01:00
Andreas Kling
31d6b640eb Add a bold variant of Katica and make that the system's default bold font.
..and do some minor tweaks to the font rendering code.
2019-03-06 14:50:27 +01:00
Andreas Kling
66a5ddd94a More work on the variable-width font support.
Katica is now the default system font, and it looks quite nice. :^)
I'm gonna need to refine the GTextBox movement stuff eventually,
but it works well-enough for basic editing now.
2019-03-06 14:06:40 +01:00
Andreas Kling
e53cef02d5 Kernel: Dump kernel stack trace on assertion failure. 2019-03-06 14:05:41 +01:00
Andreas Kling
7f6c81d90f Implement basic support for variable-width fonts.
Also add a nice new font called Katica. It's not used anywhere yet but
I'm definitely itching to start using it. :^)
2019-03-06 12:52:41 +01:00
Andreas Kling
0a86366c71 Make a preparation pass for variable-width fonts. 2019-03-06 11:03:10 +01:00
Andreas Kling
b85fe0bd07 WindowServer: Let the window switcher render itself as a WSWindow.
Much better than drawing directly into the back buffer.
2019-03-06 10:03:10 +01:00
Andreas Kling
f3ff402cf3 WindowServer: Store the mouse button state in one variable.
This makes the logic around it a lot less verbose.
2019-03-05 14:13:07 +01:00
Andreas Kling
26a9d662f4 Kernel+WindowServer: Move mouse input signal parsing to kernel driver.
It was silly for the WindowServer to have to know anything about the
format of PS/2 mouse packets.

This patch also enables use of the middle mouse button.
2019-03-05 14:01:03 +01:00
Andreas Kling
1cc32ebc7e Kernel: Remove "requested wakeups" feature.
I only needed this to support the WindowServer living inside the kernel.
Now that it's been migrated to userspace, this can go. :^)
2019-03-05 13:34:36 +01:00
Andreas Kling
91031346e5 Kernel: More signal handling improvements.
Finally fixed the weird flaky crashing when resizing Terminal windows.
It was because we were dispatching a signal to "current" from the scheduler.
Yet another thing I dislike about even having a "current" process while
we're in the scheduler. Not sure yet how to fix this.

Let the signal handler's kernel stack be a kmalloc() allocation for now.
Once we can do allocation of consecutive physical pages in the supervisor
memory region, we can use that for all types of kernel stacks.
2019-03-05 12:52:35 +01:00
Andreas Kling
086a0fc969 LibGUI: Let GApplication::exec() call exit() instead of returning to main().
This sidesteps the problem of having various things on the heap that don't
get torn down. It's obviously not a great solution, but it'll work for now.
2019-03-05 12:48:59 +01:00
Andreas Kling
9e1fcb74a2 Kernel: Returning from a signal handler reset the signal mask correctly.
We were setting the handled signal number as the new signal mask, oops.
2019-03-05 11:00:26 +01:00
Andreas Kling
251293f2e1 Kernel: Block a signal from being dispatched again until handler returns.
We don't handle nesting yet, but this is a step in the right direction.
2019-03-05 10:34:08 +01:00
Andreas Kling
b67d0a3632 WindowServer: Determine resizing "hot corner" based on window's outer rect. 2019-03-04 11:34:25 +01:00
Andreas Kling
67fc42f64e Kernel: SIGCONT should unblock a blocked process.
Otherwise we might stay in BlockedSignal state forever. Unblocking just
means that the current syscall may fail with EINTR.
2019-03-04 11:25:24 +01:00
Andreas Kling
d932c03843 GTableView: Tweak focus appearance for selected items. 2019-03-04 11:17:25 +01:00
Andreas Kling
06bd2fb2d5 GTableView: Allow initiating keyboard navigation with no current selection. 2019-03-04 10:57:26 +01:00
Andreas Kling
7e955f7b60 GTableView: Tweak the look of column headers. 2019-03-04 10:54:34 +01:00
Andreas Kling
4ea7a51ecd LibGUI: Improve GStatusBar and GToolBar and share some code via GStyle. 2019-03-04 10:47:54 +01:00
Andreas Kling
ac2a3f7fdf GTableView: Make the last column header separator look right. 2019-03-04 10:26:16 +01:00
Andreas Kling
f91a20f9d0 LibGUI: Unbreak clearing GTableView selection by clicking outside items.
Also, clicking on the column headers should not clear selection.
2019-03-04 10:18:05 +01:00
Andreas Kling
ef4d517429 LibGUI: Tweak focus appearance and add it to GTableView. 2019-03-04 10:12:09 +01:00
Andreas Kling
5c27e74fac WindowServer: Add a window switcher.
This needs some work on the window ordering and things like that, but it
works quite nicely as a starting point.

The keyboard shortcut is Logo+Tab. :^)
2019-03-03 15:17:05 +01:00
Andreas Kling
483e0a5526 SharedGraphics: Add Rect::center_within(Rect). 2019-03-03 13:34:50 +01:00
Andreas Kling
0e4b7990c0 Kernel: Detect the Tab key. :^) 2019-03-03 13:34:29 +01:00
Andreas Kling
b4631d2083 WindowManager: Allow moving windows around using Logo+LMB. 2019-03-03 13:18:58 +01:00
Andreas Kling
57fe316e01 Detect the "Logo" (Windows/Apple/whatever) key and use it for window resize.
This will be comfortable enough while I'm still developing with emulators.
QEMU keeps eating my "Alt" key presses and it's making things difficult.
2019-03-03 12:56:48 +01:00
Andreas Kling
159fa99539 Kernel: No need to check is_superuser() after may_execute().
Since may_execute() incorporates a superuser check. :^)
2019-03-03 12:34:54 +01:00
Andreas Kling
5e40aa4f1a LibGUI: Move shortcut actions from GEventLoop to GApplications.
I'm gonna want to have nested event loops sooner or later, so let's not
pollute GEventLoop with things that are meant to work globally.

This patch also changes key events to pass around their modifiers as a
bitfield all the way around the system instead of breaking them up.
2019-03-03 12:32:15 +01:00
Andreas Kling
725b57fe1f Kernel: Try to do the right thing by default for unhandled signals. 2019-03-03 12:13:41 +01:00
Andreas Kling
b0c673265a Applications: Map Alt+F4 to Quit in FileManager/ProcessManager/Terminal. 2019-03-03 02:52:22 +01:00
Andreas Kling
7c06431ff7 FileManager: Canonicalize paths when opening them. 2019-03-03 00:40:50 +01:00
Andreas Kling
d94abc4f81 FileManager+LibGUI: Add a simple location textbox.
The widget layout here is a bit off and needs work.
2019-03-03 00:34:40 +01:00
Andreas Kling
63cdc3d2d5 LibGUI: Support GTableView navigation with Page Up and Page Down.
Also base the vertical scrollbar's gutter range on the visible content rect,
making it very similar to a Page Up/Down. Maybe they should be exactly the
same, I don't know.
2019-03-02 23:58:45 +01:00