diff --git a/include/timeline/TimelineItem.h b/include/timeline/TimelineItem.h index 6a8f277e..c499957b 100644 --- a/include/timeline/TimelineItem.h +++ b/include/timeline/TimelineItem.h @@ -182,6 +182,7 @@ TimelineItem::setupLocalWidgetLayout(Widget *widget, messageLayout_->addLayout(widgetLayout, 1); } + messageLayout_->addWidget(checkmark_); messageLayout_->addWidget(timestamp_); mainLayout_->addLayout(messageLayout_); } @@ -232,6 +233,7 @@ TimelineItem::setupWidgetLayout(Widget *widget, messageLayout_->addLayout(widgetLayout, 1); } + messageLayout_->addWidget(checkmark_); messageLayout_->addWidget(timestamp_); mainLayout_->addLayout(messageLayout_); } diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc index db5f19e6..063f1a41 100644 --- a/src/timeline/TimelineItem.cc +++ b/src/timeline/TimelineItem.cc @@ -30,6 +30,8 @@ #include "timeline/widgets/ImageItem.h" #include "timeline/widgets/VideoItem.h" +constexpr const static char *CHECKMARK = "✓"; + void TimelineItem::init() { @@ -62,7 +64,11 @@ TimelineItem::init() mainLayout_->setContentsMargins(conf::timeline::headerLeftMargin, 0, 0, 0); mainLayout_->setSpacing(0); + // Setting fixed width for checkmark because systems may have a differing width for a + // space and the Unicode checkmark. checkmark_ = new QLabel(" ", this); + checkmark_->setFixedWidth(fm.width(CHECKMARK)); + checkmark_->setFont(font_); checkmark_->setStyleSheet( QString("font-size: %1px;").arg(conf::timeline::fonts::timestamp)); } @@ -351,7 +357,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent void TimelineItem::markReceived() { - checkmark_->setText("✓"); + checkmark_->setText(CHECKMARK); checkmark_->setAlignment(Qt::AlignTop); }