Andreas Kling
0680fe2383
ProcessManager: Show the colonel process.
2019-03-09 11:29:32 +01:00
Andreas Kling
2bde251163
Base: Add 16x16 icon for TextEditor.
2019-03-08 19:56:12 +01:00
Andreas Kling
48470cdf44
Launcher: Add a launcher button for TextEditor.
2019-03-08 19:53:11 +01:00
Andreas Kling
5a28392660
GTextEditor: Use a subwidget for the scrollbar corner and tighten clipping.
2019-03-08 18:58:40 +01:00
Andreas Kling
ccda716028
GTextEditor: Backspace and Delete should work regardless of modifier state.
2019-03-08 18:50:14 +01:00
Andreas Kling
032549d7bf
GTextEditor: Refactor selection into a GTextRange class.
...
This is a bit more expressive than "selection start + current cursor".
2019-03-08 18:28:24 +01:00
Andreas Kling
f40d11f06d
LibGUI+WindowServer: Implement drag-to-select behavior in GTextEditor.
...
To make this feel right, I needed to start passing keyboard modifiers along
with mouse events. That allows shift-clicking to extend the selection. :^)
2019-03-08 17:53:02 +01:00
Andreas Kling
6d172725c0
GTextEditor: Fix text_position_at() behavior when passed negative values.
2019-03-08 17:13:31 +01:00
Andreas Kling
35c6dceee0
FileManager: Don't crash if pressing Return with no selected item.
2019-03-08 16:02:00 +01:00
Andreas Kling
c4937f01d8
GTextEditor: Simplify delete_selection().
2019-03-08 15:55:58 +01:00
Andreas Kling
5602f3be6c
GTextEditor: Ctrl+A should select the entire document.
2019-03-08 14:12:41 +01:00
Andreas Kling
220c7b5f75
GTextEditor: Replace selection on input or Backspace/Delete.
2019-03-08 14:10:34 +01:00
Andreas Kling
48d48679b0
GTextEditor: Work on cut/copy/paste operations.
2019-03-08 14:08:15 +01:00
Andreas Kling
b8581b0069
Seal clipboard buffers after copying data into them.
...
This is just a quick safety mechanism to ensure that nobody alters the
contents of a clipping after it's been set.
Ultimately this will be replaced by a more sophisticated SHM object.
2019-03-08 13:33:35 +01:00
Andreas Kling
6820f9e14f
WindowServer+LibGUI: Add a server-side clipboard.
...
On the client side, use GClipboard's data() and set_data(String) to access
the global clipboard. :^)
2019-03-08 13:27:19 +01:00
Andreas Kling
eda0866992
Add a C++ helper class for working with shared buffers.
...
This is a bit more comfortable than passing the shared buffer ID manually
everywhere and keeping track of size etc.
2019-03-08 12:24:05 +01:00
Andreas Kling
0b5d5fc3c9
Kernel: Minor tidying in BXVGADevice.
2019-03-08 02:54:39 +01:00
Andreas Kling
6576ac8332
GTextEditor: Add selected_text() function.
...
I don't have a clipboard to actually put the copied selection onto yet,
so just print the selected text to stdout so we can see what it is.
2019-03-08 01:59:59 +01:00
Andreas Kling
77359a5360
LibGUI: Only activate keyboard shortcuts on KeyDown, not KeyUp.
2019-03-08 01:59:49 +01:00
Andreas Kling
1e0971c8b4
WindowServer: Fix slightly off alignment of menubar clock.
2019-03-08 01:31:03 +01:00
Andreas Kling
f40ef7f495
Meta: Time for a new screenshot! :^)
2019-03-08 01:10:33 +01:00
Andreas Kling
b5521e1b0d
GTextEditor: Add basic selection support.
2019-03-08 00:49:45 +01:00
Andreas Kling
c9c40e1da6
Base+WindowServer: Add a new default wallpaper for fun.
2019-03-07 23:58:04 +01:00
Andreas Kling
28a6ba498a
Userland: Fix broken permissions for files created by /bin/cp.
...
When passing O_CREAT to open(), it will grab a third "mode" argument from
the stack. Let's not forget to actually pass this!
Also use the process umask for the created files.
2019-03-07 23:23:07 +01:00
Andreas Kling
ca52de8e5c
TextEditor: Add a menu for switching the editor font.
2019-03-07 23:05:55 +01:00
Andreas Kling
949c98c5af
LibGUI: Implement GToolbar separators.
2019-03-07 23:01:36 +01:00
Andreas Kling
054e4caf49
TextEditor: Add Cut/Copy/Paste placeholder actions.
2019-03-07 21:43:43 +01:00
Andreas Kling
27b0aab13e
GTextEditor: Unbreak forward merge with Delete.
2019-03-07 20:15:05 +01:00
Andreas Kling
9867fe1025
GTextEditor: Add a ruler column that always shows the line numbers.
2019-03-07 20:05:05 +01:00
Andreas Kling
f13c62f225
GTextEditor: Fix double effect of backspace/delete in some cases.
2019-03-07 17:18:22 +01:00
Andreas Kling
a738b5cb69
TextEditor: Open an empty document by default.
2019-03-07 17:15:59 +01:00
Andreas Kling
f8b72ab3ab
GTextEditor: Add basic PageUp/PageDown navigation support.
2019-03-07 17:11:17 +01:00
Andreas Kling
187d7cb400
GTextEditor: Add write_to_file(String path) :^)
2019-03-07 17:06:11 +01:00
Andreas Kling
a5bc20c733
GTextEditor: Support starting with an empty document.
2019-03-07 16:51:47 +01:00
Andreas Kling
43d56b6f3a
GTextEditor: Support splitting lines at the cursor with the Return key.
2019-03-07 16:49:21 +01:00
Andreas Kling
a64b71fb3d
GTextEditor: Support forward delete/merge with the Delete key.
2019-03-07 16:33:20 +01:00
Andreas Kling
ac78cdae46
Kernel: Detect the Delete key.
2019-03-07 16:20:00 +01:00
Andreas Kling
38662f884d
GTextEditor: Merge with previous line if backspacing at column 0.
2019-03-07 16:15:25 +01:00
Andreas Kling
6094f592a9
GTextEditor: More work on basic line editing. Insert/remove characters.
2019-03-07 16:04:21 +01:00
Andreas Kling
8425ea971a
GTextEditor: Start working on editing, starting with inserting newlines.
2019-03-07 15:52:11 +01:00
Andreas Kling
b4df33e453
GTextEditor: Only paint lines inside the dirty rect.
...
This dramatically improves performance in large documents. :^)
2019-03-07 15:03:38 +01:00
Andreas Kling
3ee0e82206
FileManager: Open non-executable files in TextEditor by default.
2019-03-07 14:43:12 +01:00
Andreas Kling
ce35cddb1b
GTextEditor: Let's use a Vector for the line backing store.
...
I'm eventually gonna want to replace this with something more clever,
like a automagically splicing vector or something, but for now, at least
we move away from immutable Strings.
2019-03-07 14:35:32 +01:00
Andreas Kling
a21ecd440a
GTextEditor: Allow moving the cursor by clicking.
2019-03-07 14:02:10 +01:00
Andreas Kling
9997992907
GTextEditor: Make the cursor invalidation work with the padding().
2019-03-07 13:54:02 +01:00
Andreas Kling
60c1ab5fbe
GTextEditor: Scroll the cursor into view before updating it.
2019-03-07 13:34:00 +01:00
Andreas Kling
9591acc212
GTextEditor: Remove some debug spam.
2019-03-07 13:26:02 +01:00
Andreas Kling
77198ef735
GTextEditor: Simplify update_cursor().
2019-03-07 13:23:17 +01:00
Andreas Kling
6a6bcc5daf
GTextEditor: Add Home/End and Ctrl+Home/Ctrl+End navigation shortcuts.
...
For start/end of line and start/end of document respectively.
2019-03-07 13:21:51 +01:00
Andreas Kling
8dcec749ed
Kernel: Detect the Home and End keyboard keys.
2019-03-07 13:19:05 +01:00