From f8b72ab3ab1616242b56b8ac42c11f4d8217aca1 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 7 Mar 2019 17:11:17 +0100 Subject: GTextEditor: Add basic PageUp/PageDown navigation support. --- LibGUI/GTextEditor.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'LibGUI') diff --git a/LibGUI/GTextEditor.cpp b/LibGUI/GTextEditor.cpp index 1cf4dcc5b7..1cba125043 100644 --- a/LibGUI/GTextEditor.cpp +++ b/LibGUI/GTextEditor.cpp @@ -160,6 +160,22 @@ void GTextEditor::keydown_event(GKeyEvent& event) } return; } + if (!event.modifiers() && event.key() == KeyCode::Key_PageUp) { + if (m_cursor.line() > 0) { + int new_line = max(0, m_cursor.line() - visible_content_rect().height() / line_height()); + int new_column = min(m_cursor.column(), m_lines[new_line]->length()); + set_cursor(new_line, new_column); + } + return; + } + if (!event.modifiers() && event.key() == KeyCode::Key_PageDown) { + if (m_cursor.line() < (m_lines.size() - 1)) { + int new_line = min(line_count() - 1, m_cursor.line() + visible_content_rect().height() / line_height()); + int new_column = min(m_cursor.column(), m_lines[new_line]->length()); + set_cursor(new_line, new_column); + } + return; + } if (!event.modifiers() && event.key() == KeyCode::Key_Left) { if (m_cursor.column() > 0) { int new_column = m_cursor.column() - 1; -- cgit v1.2.3