Andreas Kling
e0cdc5db0d
Ext2FS: Reduce debug spam in block allocation.
2019-04-25 22:05:32 +02:00
Andreas Kling
de4b77ef27
WindowServer: Ignore title change notifications for non-normal windows.
2019-04-25 17:38:16 +02:00
Andreas Kling
04b7def6ab
sh: Add support for redirecting stdin and stdout with < and >.
...
This is certainly about time. The kernel has had all the necessary support
in place for months, and I just kept postponing working on the shell. :^)
2019-04-25 16:10:16 +02:00
Andreas Kling
df8e76a67c
cat: Just use fd 0 when no arguments are passed.
...
I'm not sure why it seemed necessary at some point to open /dev/stdin rather
than simply using the already-open fd 0.
2019-04-25 16:01:28 +02:00
Andreas Kling
6c950f8f83
Kernel: Dump stack trace when kmalloc() fails.
2019-04-25 15:58:49 +02:00
Andreas Kling
e84faadb63
sh: Refactor command parsing into a separate class.
2019-04-25 14:34:25 +02:00
Andreas Kling
07de1147ad
sh: Add basic command piping support.
2019-04-25 14:13:36 +02:00
Andreas Kling
aa84e2fc64
fgrep: Don't repeat old incoming data if fgets() failed.
2019-04-25 14:07:17 +02:00
Andreas Kling
d5578826af
Kernel: Make it possible to look up FIFO's by ID.
...
This will be useful when implementing the /proc/PID/fd/N links where N is
a file descriptor referring to a FIFO.
2019-04-25 13:53:24 +02:00
Andreas Kling
eadcf720c0
Userland: Add a simple /bin/echo program.
2019-04-25 04:42:09 +02:00
Andreas Kling
737315c228
GTextEditor: Improve cursor positioning accuracy when using a mouse.
...
Put the cursor on the left or right side of a glyph when clicking it based
on distance to middle of glyphs. This is such an obvious change that makes
a small but noticeable difference in feel. :^)
2019-04-25 02:15:45 +02:00
Andreas Kling
7a5525edf4
GTextEditor: Go a little past the cursor for Home/End scroll-into-view.
...
When jumping to the start of a line, or to the end of a line, scrolling two
pixels past the end yields a pleasant effect.
2019-04-25 01:33:59 +02:00
Andreas Kling
2c51bc92af
GTextEditor: Always call did_change() before set_cursor().
...
This is not very obvious and I need to come up with a better design, but for
now just make sure to call did_change() before calling set_cursor().
This is needed because set_cursor() will try to scroll the cursor into view,
and for right-aligned text, did_change() may change the content rect which
needs to be reflected by the time we call scroll_cursor_into_view().
2019-04-25 01:28:17 +02:00
Andreas Kling
4e715dbc71
GTextEditor: Account for the GFrame border in the painting code.
...
We were forgetting to translate the painter by the frame_thickness().
With this fixed, we can also do proper vertical centering of lines for
single-line editors, and things suddenly look nicer than ever! :^)
2019-04-25 01:11:35 +02:00
Andreas Kling
3543236e8f
GScrollableWidget: The visible_content_rect() should be max content_size().
...
When computing the visible content rect, constrain the result to the content
size. The content shouldn't feel responsible for painting anything outside.
2019-04-25 00:05:48 +02:00
Andreas Kling
7dc4078a73
SharedGraphics: Add is_right_text_alignment(TextAlignment) helper.
...
This seems a tad bit more future-proof than manually checking all the valid
right-side TextAlignment values in clients.
2019-04-24 23:46:19 +02:00
Andreas Kling
0c88ce9ee3
GTextEditor: Expand the content "to-fill" for right aligned text.
...
When using a right-side text alignment, hook the resize event to make sure
that the content width is at least frame_inner_rect().width() wide.
This allows us to use content_width() as the anchor point for right aligned
text, rather than using the frame inner rect, which was clearly wrong in
the overflow case.
2019-04-24 23:42:49 +02:00
Andreas Kling
f1eba2295d
GTextEditor: Make the line_widget_rect() span the widget horizontally.
2019-04-24 23:15:15 +02:00
Andreas Kling
4bea3a4aa6
GTextEditor: Turn off the ruler by default.
...
You're usually not gonna want the ruler. TextEditor can enable it manually.
2019-04-24 23:06:44 +02:00
Andreas Kling
5c240af3f7
GTextEditor: Fix line_content_rect() behavior with custom alignments.
2019-04-24 22:46:27 +02:00
Andreas Kling
62f0aae4ca
GTextEditor: Add support for different text alignments.
...
Currently only CenterLeft and CenterRight are supported, but it would be
very straightforward to add other alignments as well.
2019-04-24 22:24:16 +02:00
Andreas Kling
16f6a3af3c
Allow passing extra args to qemu via a SERENITY_EXTRA_QEMU_ARGS env var.
2019-04-24 21:06:16 +02:00
Andreas Kling
16cbfd3f4e
Taskbar: Clicking a window button now toggles minimized state.
2019-04-24 02:48:02 +02:00
Andreas Kling
d7cf841d3d
Kernel: Add a comment block about the Device class.
2019-04-24 02:37:57 +02:00
Andreas Kling
f7a23f3668
Taskbar: Forgot to add WindowIdentifier.h.
2019-04-24 02:20:38 +02:00
Andreas Kling
ca9ed13643
Kernel: Simplify Device::open().
2019-04-24 02:20:14 +02:00
Andreas Kling
c1b310c5bf
Build: Let's skip the --gc-sections linker option for now.
2019-04-24 01:57:51 +02:00
Andreas Kling
956bd23aae
WindowServer+TaskBar: Add a taskbar window button popup menu.
...
This patch only hooks up the minimize and unminimize actions.
2019-04-23 23:14:14 +02:00
Andreas Kling
c5c4e54a67
Kernel: Process destruction should destroy all child threads.
...
We were only destroying the main thread when a process died, leaving any
secondary threads around. They couldn't run, but because they were still
in the global thread list, strange things could happen since they had some
now-stale pointers to their old process.
2019-04-23 22:17:01 +02:00
Andreas Kling
e2cd572e60
WindowServer: Add some padding to the window switcher items.
2019-04-23 22:01:33 +02:00
Andreas Kling
0c898e3c2c
Put assertions behind a DEBUG flag to make it easy to build without them.
2019-04-23 21:52:02 +02:00
Andreas Kling
f3754b8429
Build: Pass --gc-sections to the linker in all builds.
...
This removes unused sections from the output and reduces the binary size
of everything we compile.
2019-04-23 21:37:10 +02:00
Andreas Kling
f042b3adeb
Kernel: Make the right shift key work.
...
I never realized the right shift key wasn't hooked up since my left pinky
always hovers over the left shift key, ready to rock.
2019-04-23 20:47:45 +02:00
Andreas Kling
f520d87097
WindowServer: Remove debug spam about activating non-normal windows.
2019-04-23 20:46:10 +02:00
Andreas Kling
02e5d55832
LibGUI: Don't bother setting a title on tooltip windows.
2019-04-23 20:45:42 +02:00
Andreas Kling
8495abd140
GWindow: Don't send InvalidateRect message with 0 rects to WindowServer.
...
This could happen if GWindow::hide() was called while a window had pending
repaint rects. The deferred_invoke() lambda in GWindow::update() would
eventually run, but by then, hide() had cleared all pending rects.
2019-04-23 20:43:51 +02:00
Andreas Kling
38e1e205a5
FileManager: Add a window icon.
2019-04-23 20:42:47 +02:00
Andreas Kling
91f561a417
touch: Newly created files were accidentally marked as FIFO's.
2019-04-23 17:04:12 +02:00
Andreas Kling
fd500c79d6
Ext2S: Fix off-by-one error in block allocation.
2019-04-23 16:38:45 +02:00
Andreas Kling
b041fc57de
Ext2FS: Bitmaps aren't always at full capacity.
...
Block bitmaps only have (blocks_per_group) entries, while inode bitmaps
only have (inodes_per_group) entries.
2019-04-23 16:21:07 +02:00
Andreas Kling
14ceabeca8
Ext2FS: More bitmap misunderstanding cleanups.
...
Inode bitmaps are also only ever one block.
2019-04-23 15:07:07 +02:00
Andreas Kling
1bf37db9a9
Ext2FS: Simplify block bitmap stuff.
...
Block bitmaps are only ever one block in size. I don't know why I thought
otherwise, but use this info to simplify the code. :^)
2019-04-23 14:51:47 +02:00
Andreas Kling
58240fdb33
Do a pass of compiler warning fixes.
...
This is really making me question not using 64-bit integers more.
2019-04-23 13:00:53 +02:00
Andreas Kling
243e1d8462
Kernel: Use rep insw/outsw for IDE transfers.
...
There are much faster ways to do disk transfers, but I'm not implementing
those today. In the meantime, this is slightly nicer. :^)
2019-04-23 03:45:55 +02:00
Andreas Kling
37498c1566
Kernel: Send IDE flush command after writing sectors.
2019-04-23 03:16:47 +02:00
Andreas Kling
11e7ce60e5
Kernel: Use IDE LBA addressing instead of the long-obsolete C/H/S.
2019-04-23 02:26:51 +02:00
Andreas Kling
62f7e8ac62
WindowServer: WSButton should be more discerning with MouseUp/MouseMove.
2019-04-23 01:17:20 +02:00
Andreas Kling
2d7cad6a16
Kernel: Make sure we don't use any FPU/MMX/SSE instructions.
2019-04-22 23:38:33 +02:00
Andreas Kling
5c68929aa1
Kernel: Add a systrace() syscall and implement /bin/strace using it.
...
Calling systrace(pid) gives you a file descriptor with a stream of the
syscalls made by a peer process. The process must be owned by the same
UID who calls systrace(). :^)
2019-04-22 18:44:45 +02:00
Andreas Kling
6693cfb26a
Kernel: Don't use MMX memcpy() in the kernel.
...
I just discovered the hard way that clobbering FPU/MMX/SSE registers in the
kernel makes things very confusing for userspace (and other kernel threads.)
Let's banish all of those things from the kernel to keep things simple.
2019-04-22 17:13:18 +02:00