summaryrefslogtreecommitdiff
path: root/Libraries/LibVT
AgeCommit message (Collapse)Author
2020-09-11LibVT: Show an I-beam cursor over TerminalWidgetAndreas Kling
..and implement this using the new widget override cursor mechanism.
2020-09-11LibGUI+WindowServer: Rename window "override cursor" to just "cursor"Andreas Kling
Let's just say each window has a cursor, there's not really overriding going on.
2020-09-10LibGfx: Move StandardCursor enum to LibGfxAndreas Kling
This enum existed both in LibGUI and WindowServer which was silly and error-prone.
2020-09-10LibVT: Let Terminal keep history in a circular bufferNico Weber
This makes Terminal::scroll_up() O(1) instead of O(n) in the size of the history. (It's still O(n) in the size of visible lines.) Reduces time to run `disasm /bin/id` with the default terminal window size from 530ms to 409ms (min-of-5) on my system.
2020-09-10LibVT: Let Terminal only expose history_size, not storageNico Weber
2020-09-05LibGUI: Make the Clipboard API deal in raw byte buffers a bit moreAndreas Kling
To open up for putting not just text/plain content on the clipboard, let's make the GUI::Clipboard API a bit more raw-data-friendly. :^)
2020-08-30LibVT+Terminal: Mark default action in context menuBen Wiederhake
2020-08-30Libraries: Unbreak building with extra debug macrosBen Wiederhake
2020-08-27Base: Move 16x16 common icons to /res/icons/16x16/thankyouverycool
Drops the '16' suffix from filenames. Resizes inconsistent audio-volume icons to intended size.
2020-08-18WindowServer+LibVT: Convert some dbgprintf() to dbg()Sergey Bugaev
These kept annoying me, because these were the only two lines in the default boot log that went unattributed.
2020-08-15LibGUI: Make focus events more aware of why focus is changingAndreas Kling
This patch adds GUI::FocusEvent which has a GUI::FocusSource. The focus source is one of three things: - Programmatic - Mouse - Keyboard This allows receivers of focus events to implement different behaviors depending on how they receive/lose focus.
2020-08-05Unicode: Try s/codepoint/code_point/g againNico Weber
This time, without trailing 's'. Ran: git grep -l 'codepoint' | xargs sed -ie 's/codepoint/code_point/g
2020-08-05Revert "Unicode: s/codepoint/code_point/g"Nico Weber
This reverts commit ea9ac3155d1774f13ac4e9a96605c0e85a8f299e. It replaced "codepoint" with "code_points", not "code_point".
2020-08-03Unicode: s/codepoint/code_point/gAndreas Kling
Unicode calls them "code points" so let's follow their style.
2020-07-12LibVT: Don't scroll to bottom when pressing the right shift keyAndreas Kling
2020-07-09LibVT: Set scrollbar page sizeTom
2020-07-05Terminal+LibVT: Add "clear including history" action (Ctrl+Shift+K) :^)Andreas Kling
Sometimes you just want to get rid of all your scrollback history in the terminal, and now there's a way to do that.
2020-07-04Userspace: Remove a bunch of unnecessary Kernel/API/KeyCode.h includesAndreas Kling
2020-07-04Kernel: Move headers intended for userspace use into Kernel/API/Andreas Kling
2020-07-04LibGUI: Turn GUI::Application::the() into a pointerAndreas Kling
During app teardown, the Application object may be destroyed before something else, and so having Application::the() return a reference was obscuring the truth about its lifetime. This patch makes the API more honest by returning a pointer. While this makes call sites look a bit more sketchy, do note that the global Application pointer only becomes null during app teardown.
2020-06-30Terminal: Bump the default ScrollLength to 4Andreas Kling
This feels so much better than scrolling one line at a time. :^)
2020-06-30LibVT/Terminal: add a scroll length to the TerminalWidgetBenoît Lormeau
The scroll length is the number of lines by which the terminal will go up/down when scrolling the mouse wheel once.
2020-06-25Terminal: Ignore cell background when visual beep is activeAnotherTest
Fixes #2621
2020-06-16LibVT: Replace u8 type to u32 for code pointHüseyin ASLITÜRK
Replace KeyEvent text attribute usage with code_point.
2020-06-12AK: Make string-to-number conversion helpers return OptionalAndreas Kling
Get rid of the weird old signature: - int StringType::to_int(bool& ok) const And replace it with sensible new signature: - Optional<int> StringType::to_int() const
2020-06-10LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSizeAndreas Kling
This fits nicer with FloatRect,FloatPoint,FloatSize and gives a much better visual clue about what type of metric is being used.
2020-05-30LibVT: Allow updating the window progress via an escape sequenceAndreas Kling
You can now request an update of the terminal's window progress by sending this escape sequence: <esc>]9;<value>;<max_value>;<escape><backslash> I'm sure we can find many interesting uses for this! :^)
2020-05-30LibVT: Fix emitting \0 when pressing a modifier keySergey Bugaev
This causes the kernel to return EOF, which in turn confuses everything. This is a regression from the LibVT port of VirtualConsole.
2020-05-27LibVT: Move most of key press handling logic into VT::TerminalSergey Bugaev
This will let us share it between the userspace (TerminalWidget) and the Kernel.
2020-05-26AK: Rename FileSystemPath -> LexicalPathSergey Bugaev
And move canonicalized_path() to a static method on LexicalPath. This is to make it clear that FileSystemPath/canonicalized_path() only perform *lexical* canonicalization.
2020-05-18LibVT: Pass the handler name to Launcher::open_url to control what gets launchedNicholas Hollett
Now we can pick which application gets opened in the context menu for URLs in the Terminal \o/
2020-05-17LibVT: TerminalWidget now opts into emoji input by default :^)Andreas Kling
2020-05-17LibVT: Handle keydown events with multi-byte text correctlyAndreas Kling
TerminalWidget can now handle keydown events that contain multi-byte UTF-8 sequences. :^)
2020-05-17LibVT: Make TerminalWidget::selected_text() produce UTF-8 strings :^)Andreas Kling
2020-05-17LibVT: Store all-ASCII terminal lines as 8-bit charactersAndreas Kling
To conserve memory, we now use byte storage for terminal lines until we encounter a non-ASCII codepoint. At that point, we transparently switch to UTF-32 storage for that one line.
2020-05-16LibVT: Don't try to set the window title to invalid UTF-8 textAndreas Kling
2020-05-16LibVT: Add incremental UTF-8 parsing to the terminal input handlerAndreas Kling
Instead of relying on the GUI code to handle UTF-8, we now process and parse the incoming data into 32-bit codepoints ourselves. This means that you can now show emojis in the terminal and they will only take up one character cell each. :^)
2020-05-16LibVT: Tweak input parsing related namesAndreas Kling
2020-05-16LibVT: Switch VT::Line to being backed by 32-bit codepointsAndreas Kling
This will allow us to have much better Unicode support. It does incur a memory usage regression which we'll have to optimize to cover.
2020-05-15LibVT: Move out the Line class from Terminal to its own classAndreas Kling
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-12Terminal: When offering to open a URL, show name + icon for handler appAndreas Kling
Instead of just saying "Open URL" when you right click on a hyperlink in the terminal, we now say something like "Open in Browser". :^)
2020-05-11LibVT: Update the terminal buffer based on visible linesAnotherTest
Lines in the history should not be considered for update at all. Fixes #2185
2020-05-10LibVT: Clear the hovered hyperlink after completing a dragAndreas Kling
2020-05-10LibVT: Allow dragging hyperlinks :^)Andreas Kling
You can now drag a hyperlink as a text/uri-list. This allows you to drag a file from "ls" output and drop it on a FileManager to copy the file there. Truly futuristic stuff!
2020-05-10LibVT: Make selection follow terminal history scrollback :^)Andreas Kling
The buffer positions referred to by a VT::Position now include history scrollback, meaning that a VT::Position with row=0 is at the start of the history. The active terminal buffer keeps moving in VT::Position coordinates whenever we scroll. This allows selection to follow history. It also allows us to click hyperlinks in history. Fixes #957.
2020-05-10LibVT: Use the "ActiveLink" theme color for links being clickedAndreas Kling
Okay, links are finally starting to feel visually intuitive. :^)
2020-05-10LibVT: Don't commit to opening a hyperlink until mouseupAndreas Kling
It felt too rushed to open links when simply mousedown'ing on them. Improve this by implementing basic "click" semantics instead. This patch also introduces the ability to prevent link opening if you want to force selection instead. Hold shift and we will not open links.
2020-05-10LibVT: Open hyperlinks on plain left-click instead of Ctrl+ClickAndreas Kling
2020-05-10LibVT: Always draw hyperlinks with a dotted underlineAndreas Kling
The dotted line is custom painted to put some more distance between the dots than what Painter::draw_line() does.