summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-10-01 18:15:23 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-10-01 18:15:23 +0300
commit6e0ae807d59ae5c7d110c8feae031584825669ce (patch)
treee0d11998c7b4c1ba805b4a6dea53d5752e53ef07 /src
parentRemove extra clang-format options (diff)
downloadnheko-6e0ae807d59ae5c7d110c8feae031584825669ce.tar.xz
Update badge counter only on change
Diffstat (limited to 'src')
-rw-r--r--src/TimelineView.cc6
-rw-r--r--src/TrayIcon.cc18
2 files changed, 13 insertions, 11 deletions
diff --git a/src/TimelineView.cc b/src/TimelineView.cc

index 8b255cde..032d1310 100644 --- a/src/TimelineView.cc +++ b/src/TimelineView.cc
@@ -380,14 +380,12 @@ TimelineView::init() scrollbar_ = new ScrollBar(scroll_area_); scroll_area_->setVerticalScrollBar(scrollbar_); - scroll_widget_ = new QWidget(); + scroll_widget_ = new QWidget(this); - scroll_layout_ = new QVBoxLayout(); + scroll_layout_ = new QVBoxLayout(scroll_widget_); scroll_layout_->addStretch(1); scroll_layout_->setSpacing(0); - scroll_widget_->setLayout(scroll_layout_); - scroll_area_->setWidget(scroll_widget_); top_layout_->addWidget(scroll_area_); diff --git a/src/TrayIcon.cc b/src/TrayIcon.cc
index 8d3dc99f..1360cc4e 100644 --- a/src/TrayIcon.cc +++ b/src/TrayIcon.cc
@@ -16,8 +16,8 @@ */ #include <QApplication> -#include <QTimer> #include <QList> +#include <QTimer> #include "TrayIcon.h" @@ -89,7 +89,7 @@ MsgCountComposedIcon::availableSizes(QIcon::Mode mode, QIcon::State state) const } QPixmap -MsgCountComposedIcon::pixmap(const QSize& size, QIcon::Mode mode, QIcon::State state) +MsgCountComposedIcon::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) { QImage img(size, QImage::Format_ARGB32); img.fill(qRgba(0, 0, 0, 0)); @@ -132,15 +132,19 @@ TrayIcon::setUnreadCount(int count) { // Use the native badge counter in MacOS. #if defined(Q_OS_MAC) - if (count == 0) - QtMac::setBadgeLabelText(""); - else - QtMac::setBadgeLabelText(QString::number(count)); + auto labelText = count == 0 ? "" : QString::number(count); + + if (labelText == QtMac::badgeLabelText()) + return; + + QtMac::setBadgeLabelText(labelText); #elif defined(Q_OS_WIN) // FIXME: Find a way to use Windows apis for the badge counter (if any). #else + if (count == icon_->msgCount) + return; + // Custom drawing on Linux. - // FIXME: It doesn't seem to work on KDE. MsgCountComposedIcon *tmp = static_cast<MsgCountComposedIcon *>(icon_->clone()); tmp->msgCount = count;