From b2ba83acb1e941c38b79b4144a562e3b1360ee4c Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Tue, 2 Aug 2011 21:49:12 +0200 Subject: [PATCH] chat view scrollbar locking fix --- cockatrice/src/chatview.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/chatview.cpp b/cockatrice/src/chatview.cpp index 9aecfd1e..c5cdf06f 100644 --- a/cockatrice/src/chatview.cpp +++ b/cockatrice/src/chatview.cpp @@ -34,12 +34,15 @@ QTextCursor ChatView::prepareBlock(bool same) void ChatView::appendHtml(const QString &html) { + bool atBottom = verticalScrollBar()->value() >= verticalScrollBar()->maximum(); prepareBlock().insertHtml(html); - verticalScrollBar()->setValue(verticalScrollBar()->maximum()); + if (atBottom) + verticalScrollBar()->setValue(verticalScrollBar()->maximum()); } void ChatView::appendMessage(QString sender, QString message, QColor playerColor, bool playerBold) { + bool atBottom = verticalScrollBar()->value() >= verticalScrollBar()->maximum(); bool sameSender = (sender == lastSender) && !lastSender.isEmpty(); QTextCursor cursor = prepareBlock(sameSender); lastSender = sender; @@ -120,7 +123,8 @@ void ChatView::appendMessage(QString sender, QString message, QColor playerColor if (!message.isEmpty()) cursor.insertText(message); - verticalScrollBar()->setValue(verticalScrollBar()->maximum()); + if (atBottom) + verticalScrollBar()->setValue(verticalScrollBar()->maximum()); } void ChatView::enterEvent(QEvent * /*event*/)