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
Andreas Kling
c350cf7b95
Kernel: Keyboard should detect the Page Up and Page Down keys.
2019-03-02 23:58:09 +01:00
Andreas Kling
596a5ce5a4
LibGUI+WindowServer: Add app-global keyboard shortcuts.
...
This patch adds a GShortcut class. Each GAction can have a GShortcut which
will cause the event loop to listen for that key combination app-globally
and activate the event in case it's pressed.
The shortcut will also be displayed when the action is added to a menu.
Use this to hook up Alt+Up with the "open parent directory" action in the
FileManager app. :^)
2019-03-02 10:10:06 +01:00
Andreas Kling
5c0fca0a95
FileManager: Make the "open parent directory" action actually open ".."
2019-03-02 09:16:57 +01:00
Andreas Kling
e11c7a5df5
FileManager: Add "up to parent directory" action to toolbar.
...
It's not actually hooked up to anything yet, I just wanted to add
something more to the toolbar. :^)
2019-03-02 02:20:11 +01:00
Andreas Kling
0c8242dd71
FileManager: Show user/group names instead of UID/GID if available.
2019-03-02 02:05:49 +01:00
Andreas Kling
2c5a378ccc
Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln.
...
It's now possible to create symbolic links! :^)
This exposed an issue in Ext2FS where we'd write uninitialized data past
the end of an inode's content. Fix this by zeroing out the tail end of
the last block in a file.
2019-03-02 01:52:24 +01:00
Andreas Kling
37f6844c6c
Kernel: Port stat() to KResult/KResultOr<T>.
2019-03-02 00:11:27 +01:00
Andreas Kling
f75eb9af16
Kernel: Support chdir() to a directory that's executable but not readable.
...
Also the superuser should be allowed to resolve any possible path without
getting tripped up by EACCES.
2019-03-01 23:54:07 +01:00
Andreas Kling
4f9b6a88a6
WindowServer: Use SA_NOCLDWAIT.
2019-03-01 16:16:38 +01:00
Andreas Kling
274b0260f7
Kernel: Don't send SIGCHLD to parent process if he has SA_NOCLDWAIT set.
...
Just transfer ownership of the dead process to the colonel and let the
scheduler reap it on next iteration.
2019-03-01 15:52:05 +01:00
Andreas Kling
5f4245789d
FileManager: Allow launching processes by activating an executable file.
2019-03-01 14:57:42 +01:00
Andreas Kling
1ab995bfff
FileManager: Keep the window title in sync with the current path.
2019-03-01 14:34:53 +01:00
Andreas Kling
574a399347
LibGUI: GTableView should scroll items into view when keyboard navigating.
2019-03-01 14:29:34 +01:00
Andreas Kling
ac8fb5da4c
FileManager: Port to GTableModel/GTableView.
...
Replace the custom DirectoryView widget with a GTableView subclass.
This was pleasantly straightforward and it's so cool seeing the huge
increase in app quality from GTableView. :^)
2019-03-01 13:55:48 +01:00
Andreas Kling
b5dcad932e
LibGUI: Allow basic keyboard navigation in GTableView.
...
Pressing Enter will now "activate" the selected index, meaning that
the model gets a call to activate(GModelIndex).
2019-03-01 13:48:08 +01:00
Andreas Kling
e1d0a3f226
LibGUI: Let GTableModel handle the selection instead of doing it virtually.
...
It's silly to force every subclass models to deal with selection.
2019-03-01 13:03:13 +01:00
Andreas Kling
9c21874d33
LibGUI: GTableView scrolling ranges should be based on the available area.
...
We have to subtract the headers and scrollbars to get the correct behavior.
2019-03-01 11:04:55 +01:00
Andreas Kling
6c2089c59d
Put miscellaneous debug spam behind #ifdefs.
2019-03-01 10:51:58 +01:00
Andreas Kling
1b16a29044
Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp.
...
/bin/cp will now copy the permission bits from source to destination. :^)
2019-03-01 10:39:19 +01:00
Andreas Kling
b5e5f26a82
Base: Add Csilla Bold 7x10 variant.
...
It's nice to have a thin and a bold variant to complement each other.
2019-03-01 02:50:50 +01:00
Andreas Kling
0776c51bf5
Base: Import a new font, Csilla Thin (7x10).
...
I wanted to do a bitmap font with an odd number of columns for a while
and I finally got around to it. This really looks rather nice, so I'm
making it the default system font for now. :^)
2019-03-01 01:52:20 +01:00
Andreas Kling
e6625755c9
ProcessManager: Tweak icons.
2019-02-28 22:35:58 +01:00
Andreas Kling
567a403683
LibGUI: Tweak GStatusBar margins.
2019-02-28 22:33:39 +01:00
Andreas Kling
7ee4e79cd6
Kernel: Oops, fix Vector assertion in FS::Sync.
2019-02-28 22:33:00 +01:00
Andreas Kling
6b581aff77
Kernel: Make a copy of the dirty inode list before iterating in sync().
2019-02-28 21:51:59 +01:00
Andreas Kling
bff5b71467
LibGUI: Add a GModelNotification class that views will receive.
...
I don't want to use GEvent here since these need to be synchronous
and mixing sync and async GEvents would be stupid.
2019-02-28 21:30:17 +01:00
Andreas Kling
322f49caec
ProcessManager: Use icons for the process priorities.
2019-02-28 21:04:26 +01:00
Andreas Kling
b132150799
LibGUI: Support bitmaps in GTableView cells.
...
Use this to add an icon for each process in the ProcessManager.
Right now they all use a generic gear icon, but I'd like to have
per-process icons, obviously. :^)
2019-02-28 20:16:10 +01:00
Andreas Kling
3fe7ddadaf
LibGUI: Clip to paint event rect in most widgets.
2019-02-28 19:34:55 +01:00
Andreas Kling
737a4d2377
LibGUI: Both GToolBar and GStatusBar should have highlight/shadow.
2019-02-28 19:31:37 +01:00
Andreas Kling
c5d88ff0d8
LibGUI: Top line on GStatusBar should be a highlight, not a shadow.
2019-02-28 19:17:08 +01:00
Andreas Kling
fd428d6ed3
SharedGraphics: Make Painter clipping work with translated clip origin.
2019-02-28 18:57:36 +01:00
Andreas Kling
8eefdbdce8
LibGUI: Add horizontal scrollbar to GTableView.
...
Now we can scroll content in both directions if it won't fit in the view.
2019-02-28 17:58:53 +01:00
Andreas Kling
2f266ef649
ProcessManager: Don't show the colonel task. :^)
2019-02-28 16:49:02 +01:00
Andreas Kling
28652a0bf7
LibGUI: GTableView was accidentally obscuring the last row.
2019-02-28 16:42:18 +01:00
Andreas Kling
75fabef57b
LibGUI: Add GVariant class and use it for table model data.
2019-02-28 16:20:29 +01:00
Andreas Kling
c1f5f2694b
ProcessManager: Add process owner's username to table view.
2019-02-28 14:12:53 +01:00
Andreas Kling
62b4f39cd4
LibGUI: GTableView should clear the selection if clicking outside items.
2019-02-28 14:05:02 +01:00
Andreas Kling
6af2ce0f7e
LibGUI: Re-enable the update rect coalescing.
2019-02-28 13:58:04 +01:00
Andreas Kling
7eb42b5ffb
LibGUI: GTableView paints itself completely, no need for auto filling.
2019-02-28 13:57:41 +01:00
Andreas Kling
827ec99a8f
LibGUI: Update GTableView's scrollbar range in response to resize.
2019-02-28 13:25:52 +01:00