Andreas Kling
0e6b273620
LibGUI: Start working on GTableView inline editing.
...
This is pretty shaky still, but the basic idea is that you subclass GModel
and return true for editable indices. The table view also needs to have its
editable flag set.
2019-04-18 22:27:14 +02:00
Andreas Kling
9ef06e2117
LibC: stddbg should be opened with O_CLOEXEC.
2019-04-18 22:20:01 +02:00
Andreas Kling
6f9df89c92
AK: MappedFile should open with O_CLOEXEC.
2019-04-18 22:19:42 +02:00
Andreas Kling
3c0afccca0
WindowServer: Improve the look of menu separators.
2019-04-18 19:58:25 +02:00
Andreas Kling
b88f2bc799
WindowServer: Broadcast window icons to newly joined WM listener clients.
2019-04-18 19:42:48 +02:00
Andreas Kling
3817f5f619
Kernel+LibC: Add a DebugLogDevice that forwards everything to I/O port 0xe9.
...
This is then used to implement the userspace dbgprintf() in a far more
efficient way than what we had before. :^)
2019-04-18 16:08:52 +02:00
Andreas Kling
3b986da643
CEventLoop: Don't call gettimeofday() at all if there are no timers.
2019-04-18 13:23:59 +02:00
Andreas Kling
ae3ec3fc37
LibGUI: Give GTextEditor a context menu.
...
Now GTextEditor manages its own editing actions (cut/copy/paste/etc) and
will show a context menu containing them when requested.
Apps that want to put a GTextEditor's actions in its menu can get to the
actions via public getters. :^)
2019-04-18 12:28:29 +02:00
Andreas Kling
67d7fc94fc
ProcessManager: Do a little less malloc() in the /proc/memstats parsing.
2019-04-18 04:48:53 +02:00
Andreas Kling
ac19fabaaf
ProcessManager: Use a single timer for refreshing the view.
...
Also add a menu for changing the update frequency to some nice values.
2019-04-18 04:38:31 +02:00
Andreas Kling
d73ed74d1c
LibCore: Add CTimer::restart() and make set_interval() take effect soon.
2019-04-18 04:38:04 +02:00
Andreas Kling
a747a10eab
LibGUI: Refactor context menus to be event-driven instead of declarative.
...
The declarative approach had way too many limitations. This patch adds a
context menu event that can be hooked to prepare a custom context menu on
demand just-in-time. :^)
2019-04-18 04:12:27 +02:00
Andreas Kling
e74b5bc054
ProcessManager+WindowServer: Do a little less malloc() in CPU monitor code.
2019-04-18 03:37:01 +02:00
Andreas Kling
36a6c10b09
FontEditor: Add a window icon.
2019-04-18 02:30:35 +02:00
Andreas Kling
c7d6e568ba
WindowServer: Tweak window icon placement again.
2019-04-18 02:11:44 +02:00
Andreas Kling
7b3876383f
LibCore: CIODevice::seek() should reset EOF state.
2019-04-18 02:09:15 +02:00
Andreas Kling
f6b4013329
WindowServer: Make window title bars slightly thicker. :^)
2019-04-18 01:45:52 +02:00
Andreas Kling
8e0611201e
CEventLoop: Consolidate gettimeofday() syscalls.
2019-04-18 01:37:23 +02:00
Andreas Kling
ab539460de
ProcessManager: Use a CFile for parsing /proc/memstat.
2019-04-18 00:57:34 +02:00
Andreas Kling
c931eaa22c
WindowServer: Generate a separate WM event for window icon changes.
2019-04-18 00:39:11 +02:00
Andreas Kling
c4c7f224d5
WindowServer: Use CFile in the CPU monitor code.
2019-04-18 00:12:04 +02:00
Andreas Kling
34087a9f90
LibC: Bring the C library close enough to newlib to trick GCC.
...
Now we can build GCC with --with-newlib, which hopefully cuts down on weird
toolchain build issues.
2019-04-17 23:16:16 +02:00
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