From cf0d05d54a54279cf4f543c4bb9c674c66b54e57 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 23 Jun 2019 15:34:36 +0200 Subject: [PATCH] Terminal: Don't compute buffer positions outside the possible area. --- Applications/Terminal/Terminal.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Applications/Terminal/Terminal.cpp b/Applications/Terminal/Terminal.cpp index 45e0b0b04c..f1cc8cfebc 100644 --- a/Applications/Terminal/Terminal.cpp +++ b/Applications/Terminal/Terminal.cpp @@ -1185,6 +1185,14 @@ BufferPosition Terminal::buffer_position_at(const Point& position) const auto adjusted_position = position.translated(-(frame_thickness() + m_inset), -(frame_thickness() + m_inset)); int row = adjusted_position.y() / m_line_height; int column = adjusted_position.x() / font().glyph_width('x'); + if (row < 0) + row = 0; + if (column < m_columns) + column = 0; + if (row >= m_rows) + row = m_rows - 1; + if (column >= m_columns) + column = m_columns - 1; return { row, column }; }