diff --git a/interface/src/ui/ChatWindow.cpp b/interface/src/ui/ChatWindow.cpp
index 445aec62c2..fde77334f4 100644
--- a/interface/src/ui/ChatWindow.cpp
+++ b/interface/src/ui/ChatWindow.cpp
@@ -80,7 +80,7 @@ ChatWindow::ChatWindow(QWidget* parent) :
} else {
ui->numOnlineLabel->hide();
ui->closeButton->hide();
- ui->usersWidget->hide();
+ ui->usersArea->hide();
ui->messagesScrollArea->hide();
ui->messagePlainTextEdit->hide();
connect(&XmppClient::getInstance(), SIGNAL(joinedPublicChatRoom()), this, SLOT(connected()));
@@ -208,7 +208,7 @@ void ChatWindow::connected() {
ui->connectingToXMPPLabel->hide();
ui->numOnlineLabel->show();
ui->closeButton->show();
- ui->usersWidget->show();
+ ui->usersArea->show();
ui->messagesScrollArea->show();
ui->messagePlainTextEdit->show();
ui->messagePlainTextEdit->setFocus();
@@ -248,6 +248,7 @@ void ChatWindow::notificationClicked() {
return;
}
}
+ Application::processEvents();
scrollToBottom();
}
@@ -262,6 +263,8 @@ void ChatWindow::error(QXmppClient::Error error) {
}
void ChatWindow::participantsChanged() {
+ bool atBottom = isNearBottom();
+
QStringList participants = XmppClient::getInstance().getPublicChatRoom()->participants();
ui->numOnlineLabel->setText(tr("%1 online now:").arg(participants.count()));
@@ -288,6 +291,11 @@ void ChatWindow::participantsChanged() {
userLabel->installEventFilter(this);
ui->usersWidget->layout()->addWidget(userLabel);
}
+ Application::processEvents();
+
+ if (atBottom) {
+ scrollToBottom();
+ }
}
void ChatWindow::messageReceived(const QXmppMessage& message) {
diff --git a/interface/ui/chatWindow.ui b/interface/ui/chatWindow.ui
index 4d223b2665..46ccafd5f8 100644
--- a/interface/ui/chatWindow.ui
+++ b/interface/ui/chatWindow.ui
@@ -128,19 +128,43 @@ QPushButton:pressed {
-
-
-
- #usersWidget {
- margin-right: 20px;
-}
+
+
+
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+
+
+ QLayout::SetDefaultConstraint
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 12
+
+
-
+
+
+
-
-
- margin-top: 12px;
-
Qt::ScrollBarAlwaysOff