mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 23:53:58 +02:00
Fix unread badge styles on palette changes.
This commit is contained in:
parent
c242a61e8c
commit
25470cde3c
2 changed files with 17 additions and 19 deletions
|
@ -216,12 +216,6 @@ InnerWidget::InnerWidget(
|
||||||
refresh();
|
refresh();
|
||||||
}, lifetime());
|
}, lifetime());
|
||||||
|
|
||||||
subscribe(Window::Theme::Background(), [=](const Window::Theme::BackgroundUpdate &data) {
|
|
||||||
if (data.paletteChanged()) {
|
|
||||||
Layout::clearUnreadBadgesCache();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
session().changes().historyUpdates(
|
session().changes().historyUpdates(
|
||||||
Data::HistoryUpdate::Flag::IsPinned
|
Data::HistoryUpdate::Flag::IsPinned
|
||||||
| Data::HistoryUpdate::Flag::ChatOccupied
|
| Data::HistoryUpdate::Flag::ChatOccupied
|
||||||
|
|
|
@ -516,6 +516,8 @@ struct UnreadBadgeSizeData {
|
||||||
};
|
};
|
||||||
class UnreadBadgeStyleData : public Data::AbstractStructure {
|
class UnreadBadgeStyleData : public Data::AbstractStructure {
|
||||||
public:
|
public:
|
||||||
|
UnreadBadgeStyleData();
|
||||||
|
|
||||||
UnreadBadgeSizeData sizes[UnreadBadgeSizesCount];
|
UnreadBadgeSizeData sizes[UnreadBadgeSizesCount];
|
||||||
style::color bg[6] = {
|
style::color bg[6] = {
|
||||||
st::dialogsUnreadBg,
|
st::dialogsUnreadBg,
|
||||||
|
@ -525,9 +527,24 @@ public:
|
||||||
st::dialogsUnreadBgMutedOver,
|
st::dialogsUnreadBgMutedOver,
|
||||||
st::dialogsUnreadBgMutedActive
|
st::dialogsUnreadBgMutedActive
|
||||||
};
|
};
|
||||||
|
rpl::lifetime lifetime;
|
||||||
};
|
};
|
||||||
Data::GlobalStructurePointer<UnreadBadgeStyleData> unreadBadgeStyle;
|
Data::GlobalStructurePointer<UnreadBadgeStyleData> unreadBadgeStyle;
|
||||||
|
|
||||||
|
UnreadBadgeStyleData::UnreadBadgeStyleData() {
|
||||||
|
style::PaletteChanged(
|
||||||
|
) | rpl::start_with_next([=] {
|
||||||
|
for (auto &data : sizes) {
|
||||||
|
for (auto &left : data.left) {
|
||||||
|
left = QPixmap();
|
||||||
|
}
|
||||||
|
for (auto &right : data.right) {
|
||||||
|
right = QPixmap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, lifetime);
|
||||||
|
}
|
||||||
|
|
||||||
void createCircleMask(UnreadBadgeSizeData *data, int size) {
|
void createCircleMask(UnreadBadgeSizeData *data, int size) {
|
||||||
if (!data->circle.isNull()) return;
|
if (!data->circle.isNull()) return;
|
||||||
|
|
||||||
|
@ -979,18 +996,5 @@ void PaintCollapsedRow(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearUnreadBadgesCache() {
|
|
||||||
if (unreadBadgeStyle) {
|
|
||||||
for (auto &data : unreadBadgeStyle->sizes) {
|
|
||||||
for (auto &left : data.left) {
|
|
||||||
left = QPixmap();
|
|
||||||
}
|
|
||||||
for (auto &right : data.right) {
|
|
||||||
right = QPixmap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Layout
|
} // namespace Layout
|
||||||
} // namespace Dialogs
|
} // namespace Dialogs
|
||||||
|
|
Loading…
Add table
Reference in a new issue