mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Fix local pinned hiding in topics.
This commit is contained in:
parent
8dc27339b4
commit
fcf9ca3982
2 changed files with 15 additions and 1 deletions
|
@ -6235,6 +6235,7 @@ void HistoryWidget::checkPinnedBarState() {
|
||||||
};
|
};
|
||||||
auto destroyer = [this, object = std::move(qobject)]() mutable {
|
auto destroyer = [this, object = std::move(qobject)]() mutable {
|
||||||
object = nullptr;
|
object = nullptr;
|
||||||
|
_pinnedBarHeight = 0;
|
||||||
updateHistoryGeometry();
|
updateHistoryGeometry();
|
||||||
updateControlsGeometry();
|
updateControlsGeometry();
|
||||||
};
|
};
|
||||||
|
|
|
@ -1505,6 +1505,18 @@ void RepliesWidget::setupPinnedTracker() {
|
||||||
return result.fullCount().has_value();
|
return result.fullCount().has_value();
|
||||||
}) | rpl::start_with_next([=](const SparseIdsSlice &result) {
|
}) | rpl::start_with_next([=](const SparseIdsSlice &result) {
|
||||||
_topic->setHasPinnedMessages(*result.fullCount() != 0);
|
_topic->setHasPinnedMessages(*result.fullCount() != 0);
|
||||||
|
if (result.skippedAfter() == 0) {
|
||||||
|
auto &settings = _history->session().settings();
|
||||||
|
const auto peerId = _history->peer->id;
|
||||||
|
const auto hiddenId = settings.hiddenPinnedMessageId(
|
||||||
|
peerId,
|
||||||
|
_rootId);
|
||||||
|
const auto last = result.size() ? result[result.size() - 1] : 0;
|
||||||
|
if (hiddenId && hiddenId != last) {
|
||||||
|
settings.setHiddenPinnedMessageId(peerId, _rootId, 0);
|
||||||
|
_history->session().saveSettingsDelayed();
|
||||||
|
}
|
||||||
|
}
|
||||||
checkPinnedBarState();
|
checkPinnedBarState();
|
||||||
}, _topicLifetime);
|
}, _topicLifetime);
|
||||||
}
|
}
|
||||||
|
@ -1521,7 +1533,7 @@ void RepliesWidget::checkPinnedBarState() {
|
||||||
_rootId);
|
_rootId);
|
||||||
const auto currentPinnedId = Data::ResolveTopPinnedId(peer, _rootId);
|
const auto currentPinnedId = Data::ResolveTopPinnedId(peer, _rootId);
|
||||||
const auto universalPinnedId = !currentPinnedId
|
const auto universalPinnedId = !currentPinnedId
|
||||||
? int32(0)
|
? MsgId(0)
|
||||||
: currentPinnedId.msg;
|
: currentPinnedId.msg;
|
||||||
if (universalPinnedId == hiddenId) {
|
if (universalPinnedId == hiddenId) {
|
||||||
if (_pinnedBar) {
|
if (_pinnedBar) {
|
||||||
|
@ -1531,6 +1543,7 @@ void RepliesWidget::checkPinnedBarState() {
|
||||||
};
|
};
|
||||||
auto destroyer = [this, object = std::move(qobject)]() mutable {
|
auto destroyer = [this, object = std::move(qobject)]() mutable {
|
||||||
object = nullptr;
|
object = nullptr;
|
||||||
|
_pinnedBarHeight = 0;
|
||||||
updateControlsGeometry();
|
updateControlsGeometry();
|
||||||
};
|
};
|
||||||
base::call_delayed(
|
base::call_delayed(
|
||||||
|
|
Loading…
Add table
Reference in a new issue