diff --git a/include/ui/Theme.h b/include/ui/Theme.h index 0ce5ef04..54bd4f5f 100644 --- a/include/ui/Theme.h +++ b/include/ui/Theme.h @@ -14,7 +14,7 @@ enum class AvatarType namespace sidebar { static const int SmallSize = 60; -static const int NormalSize = 300; +static const int NormalSize = 260; static const int CommunitiesSidebarSize = 64; } // Default font size. diff --git a/src/RoomInfoListItem.cc b/src/RoomInfoListItem.cc index b504bdd7..3a422787 100644 --- a/src/RoomInfoListItem.cc +++ b/src/RoomInfoListItem.cc @@ -167,9 +167,12 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) p.setFont(headingFont_); p.setPen(titlePen); - const auto msgStampWidth = + const int msgStampWidth = QFontMetrics(timestampFont_).width(lastMsgInfo_.timestamp) + 4; + // We use the full width of the widget if there is no unread msg bubble. + const int bottomLineWidthLimit = (unreadMsgCount_ > 0) ? msgStampWidth : 0; + // Name line. QFontMetrics fontNameMetrics(headingFont_); int top_y = 2 * Padding + fontNameMetrics.ascent() / 2; @@ -201,7 +204,8 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) // The limit is the space between the end of the username and the start of // the timestamp. int descriptionLimit = std::max( - 0, width() - 3 * Padding - msgStampWidth - IconSize - nameWidth - 5); + 0, + width() - 3 * Padding - bottomLineWidthLimit - IconSize - nameWidth - 5); auto description = metrics.elidedText(lastMsgInfo_.body, Qt::ElideRight, descriptionLimit); p.drawText(QPoint(2 * Padding + IconSize + nameWidth, bottom_y),