Commit b2ba83ac authored by Max-Wilhelm Bruker's avatar Max-Wilhelm Bruker
Browse files

chat view scrollbar locking fix

parent 3ff5158b
...@@ -34,12 +34,15 @@ QTextCursor ChatView::prepareBlock(bool same) ...@@ -34,12 +34,15 @@ QTextCursor ChatView::prepareBlock(bool same)
void ChatView::appendHtml(const QString &html) void ChatView::appendHtml(const QString &html)
{ {
bool atBottom = verticalScrollBar()->value() >= verticalScrollBar()->maximum();
prepareBlock().insertHtml(html); prepareBlock().insertHtml(html);
verticalScrollBar()->setValue(verticalScrollBar()->maximum()); if (atBottom)
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
} }
void ChatView::appendMessage(QString sender, QString message, QColor playerColor, bool playerBold) void ChatView::appendMessage(QString sender, QString message, QColor playerColor, bool playerBold)
{ {
bool atBottom = verticalScrollBar()->value() >= verticalScrollBar()->maximum();
bool sameSender = (sender == lastSender) && !lastSender.isEmpty(); bool sameSender = (sender == lastSender) && !lastSender.isEmpty();
QTextCursor cursor = prepareBlock(sameSender); QTextCursor cursor = prepareBlock(sameSender);
lastSender = sender; lastSender = sender;
...@@ -120,7 +123,8 @@ void ChatView::appendMessage(QString sender, QString message, QColor playerColor ...@@ -120,7 +123,8 @@ void ChatView::appendMessage(QString sender, QString message, QColor playerColor
if (!message.isEmpty()) if (!message.isEmpty())
cursor.insertText(message); cursor.insertText(message);
verticalScrollBar()->setValue(verticalScrollBar()->maximum()); if (atBottom)
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
} }
void ChatView::enterEvent(QEvent * /*event*/) void ChatView::enterEvent(QEvent * /*event*/)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment