diff options
| author | 2016-11-30 03:33:48 -0500 | |
|---|---|---|
| committer | 2016-11-30 03:33:48 -0500 | |
| commit | 2a5e49b6cfe4c8fc1db4db5fea6b155d53e4fbbc (patch) | |
| tree | 3e341c0f167cb6f0bd4205d5ce24e1d3a38b6ca0 | |
| parent | KviOggTheoraEncoder: Fix incorrect forward declaration of QRgb (diff) | |
| download | KVIrc-2a5e49b6cfe4c8fc1db4db5fea6b155d53e4fbbc.tar.gz KVIrc-2a5e49b6cfe4c8fc1db4db5fea6b155d53e4fbbc.tar.bz2 KVIrc-2a5e49b6cfe4c8fc1db4db5fea6b155d53e4fbbc.zip | |
KviInputEditor: Auto-scroll text when characters are deleted to minimize trailing whitespace
Fixes #1868
| -rw-r--r-- | src/kvirc/ui/KviInputEditor.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/kvirc/ui/KviInputEditor.cpp b/src/kvirc/ui/KviInputEditor.cpp index 80ac826f1..c4c06ea41 100644 --- a/src/kvirc/ui/KviInputEditor.cpp +++ b/src/kvirc/ui/KviInputEditor.cpp @@ -749,8 +749,6 @@ void KviInputEditor::rebuildTextBlocks() void KviInputEditor::ensureCursorVisible() { - QFontMetricsF * fm = getLastFontMetrics(font()); - if(m_iCursorPosition < 0) m_iCursorPosition = 0; else if(m_iCursorPosition > m_szTextBuffer.length()) @@ -758,12 +756,20 @@ void KviInputEditor::ensureCursorVisible() qreal fCursorXAbsolute = xPositionFromCharIndex(m_iCursorPosition) - KVI_INPUT_MARGIN; qreal fCursorXInText = fCursorXAbsolute + m_p->fXOffset; + qreal fEndXAbsolute = xPositionFromCharIndex(m_szTextBuffer.length()) - KVI_INPUT_MARGIN; bool bNeedRepaint = false; qreal fAvailableWidth = width() - KVI_INPUT_MARGIN - KVI_INPUT_MARGIN; - if(fCursorXAbsolute < 0.0) + if(fAvailableWidth > fEndXAbsolute) + { + m_p->fXOffset += fEndXAbsolute - fAvailableWidth; + if(m_p->fXOffset < 0.0) + m_p->fXOffset = 0.0; + bNeedRepaint = true; + } + else if(fCursorXAbsolute < 0.0) { m_p->fXOffset = fCursorXInText; bNeedRepaint = true; |
