From 7ceb185539bc12a3ae8eb74b765a0f844acc8f31 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 9 Mar 2023 21:38:01 +0100 Subject: [PATCH] Terminal: Fix line selection mode Change-Id: I03d4bf7343a49b19edfcb20d1eb57bfe18703ddf Reviewed-by: Cristian Adam --- src/plugins/terminal/terminalwidget.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index cb8e50166da..3ff38722c2c 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -1007,7 +1007,7 @@ void TerminalWidget::mousePressEvent(QMouseEvent *event) m_selection->start = m_surface->gridToPos( {0, m_surface->posToGrid(m_selection->start).y()}); m_selection->end = m_surface->gridToPos( - {viewport()->width(), m_surface->posToGrid(m_selection->end).y()}); + {m_surface->liveSize().width(), m_surface->posToGrid(m_selection->end).y()}); } else { m_selectLineMode = false; int pos = m_surface->gridToPos(globalToGrid(viewportToGlobal(event->pos()))); @@ -1037,8 +1037,14 @@ void TerminalWidget::mouseMoveEvent(QMouseEvent *event) std::swap(start, newEnd); } - m_selection->start = start; - m_selection->end = newEnd; + if (m_selectLineMode) { + m_selection->start = m_surface->gridToPos({0, m_surface->posToGrid(start).y()}); + m_selection->end = m_surface->gridToPos( + {m_surface->liveSize().width(), m_surface->posToGrid(newEnd).y()}); + } else { + m_selection->start = start; + m_selection->end = newEnd; + } if (old != *m_selection || selectionLog().isDebugEnabled()) updateViewport();