From cc8f75c11f0b7e32b94e5868fe2aac3542e372cf Mon Sep 17 00:00:00 2001 From: Xela Date: Tue, 23 Jun 2026 16:24:46 -0800 Subject: [PATCH] feat(input) Allow ctrl to modify amount of text removed --- src/ui/controls/input.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ui/controls/input.cpp b/src/ui/controls/input.cpp index c10739b..68fd064 100644 --- a/src/ui/controls/input.cpp +++ b/src/ui/controls/input.cpp @@ -277,18 +277,18 @@ void Input::handleKey(std::uint32_t sym, std::uint32_t utf32, std::uint32_t modi deleteSelection(); changed = true; } else if (m_cursorPos > 0) { - const std::size_t prev = prevCharPos(m_value, m_cursorPos); - m_value.erase(prev, m_cursorPos - prev); - m_cursorPos = prev; - m_selectionAnchor = prev; - changed = true; + const std::size_t prev = ctrl ? 0 : prevCharPos(m_value, m_cursorPos); + m_value.erase(prev, m_cursorPos - prev); + m_cursorPos = prev; + m_selectionAnchor = prev; + changed = true; } } else if (KeySymbol::isDelete(sym)) { if (hasSelection()) { deleteSelection(); changed = true; } else if (m_cursorPos < m_value.size()) { - const std::size_t next = nextCharPos(m_value, m_cursorPos); + const std::size_t next = ctrl ? m_value.size() : nextCharPos(m_value, m_cursorPos); m_value.erase(m_cursorPos, next - m_cursorPos); changed = true; }