summaryrefslogtreecommitdiff
path: root/Libraries/LibVT
AgeCommit message (Collapse)Author
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.
2020-05-10LibVT: Support RGB colors (\x1b[38;2;<r>;<g>;<b>m)AnotherTest
2020-05-09LibVT: Snapshot the URL we're opening a context menu forAndreas Kling
Otherwise it may get lost due to a leave event firing in the widget.
2020-05-09LibVT: Show the hover hand cursor when hovering over hyperlinks :^)Andreas Kling
2020-05-09LibVT: Add "Open URL" and "Copy URL" to TerminalWidget context menuAndreas Kling
These only show up when you right click a hyperlinked character cell.
2020-05-09LibVT+Terminal: Support hyperlinks in the terminal :^)Andreas Kling
We now support basic hyperlinking in the terminal with <OSC>;8;;URL<ST> Links are opened via LaunchServer on Ctrl+LeftMouse.
2020-05-09LibVT: Make Terminal::Line non-copyable and non-movableAndreas Kling
2020-05-09LibVT: Make the Xterm/OSC sequence parsing a bit more robustAndreas Kling
Tolerate sequences ending in both <0x07> (BEL) and <0x1b> <0x5c> (ST). The former is apparently an Xterm extension and the latter is standard.
2020-05-09LibVT: Respond to DSR 0 (device status)Andreas Kling
Also emit query responses in a single write() syscall instead of going character-at-a-time.
2020-04-20LibVT: Handle ctrl+arrow keysAnotherTest
Prior to this commit, we would treat them the same.
2020-04-11LibVT: Shift+Tab should generate ESC[ZAndreas Kling
Fixes #1751.
2020-04-10LibVT: Implement Device Status Report (cursor position report)AnotherTest
2020-03-30LibVT: Don't scroll-to-bottom when pressing the Logo keyAndreas Kling
Let's treat the Logo key like all the other modifiers and not scroll to the bottom of the buffer.
2020-03-08Userspace: Add missing #includes now that AK/StdLibExtras.h is smallerAndreas Kling
2020-03-06TerminalWidget: Implement ALT selectionrhin123
When holding ALT & selecting text, the terminal now forms a rectangle selection similar to other terminal behaviors.
2020-02-25AK: Make Vector use size_t for its size and capacityAndreas Kling
2020-02-23LibGUI: Make GUI::Frame have the 2px sunken container look by defaultAndreas Kling
The overwhelming majority of GUI::Frame users set the same appearance, so let's just make it the default.
2020-02-23Userspace: Use Core::Object::add() when building interfacesAndreas Kling
2020-02-16LibGUI: Add forwarding headerAndreas Kling
This patch adds <LibGUI/Forward.h> and uses it a bunch. It also dragged various header dependency reduction changes into it.
2020-02-15LibGfx: Remove Utf8View.h dependency from Font.hAndreas Kling
2020-02-15LibGUI: Remove more header dependencies from Widget.hAndreas Kling
2020-02-14LibGUI: Port the drag&drop code to Core::MimeDataAndreas Kling
2020-02-06LibGUI: Remove leading G from filenamesAndreas Kling
2020-02-06LibCore: Remove leading C from filenamesAndreas Kling
2020-02-06LibGfx: Unpublish Gfx::Size from the global namespaceAndreas Kling
2020-02-06LibGfx: Unpublish Gfx::Rect from global namespaceAndreas Kling
2020-02-06LibGfx: Rename GraphicsBitmap.{cpp,h} => Bitmap.{cpp,h}Andreas Kling
2020-02-06LibGfx: Rename from LibDraw :^)Andreas Kling
2020-02-06LibDraw: Put all classes in the Gfx namespaceAndreas Kling
I started adding things to a Draw namespace, but it somehow felt really wrong seeing Draw::Rect and Draw::Bitmap, etc. So instead, let's rename the library to LibGfx. :^)