Fix glitch in forum row switch from/to.

This commit is contained in:
John Preston
2025-10-22 17:31:43 +04:00
parent a71c24f803
commit 27a5e13107

View File

@@ -523,14 +523,25 @@ InnerWidget::InnerWidget(
) | rpl::start_with_next([=](
RowDescriptor previous,
RowDescriptor next) {
updateDialogRow(previous);
if (const auto sublist = previous.key.sublist()) {
updateDialogRow({ { sublist->owningHistory() }, {} });
}
updateDialogRow(next);
if (const auto sublist = next.key.sublist()) {
updateDialogRow({ { sublist->owningHistory() }, {} });
}
const auto update = [&](const RowDescriptor &descriptor) {
if (const auto topic = descriptor.key.topic()) {
if (_openedForum == topic->forum()) {
updateDialogRow(descriptor);
} else {
updateDialogRow({ { topic->owningHistory() }, {} });
}
} else if (const auto sublist = descriptor.key.sublist()) {
if (_savedSublists == sublist->parent()) {
updateDialogRow(descriptor);
} else {
updateDialogRow({ { sublist->owningHistory() }, {} });
}
} else {
updateDialogRow(descriptor);
}
};
update(previous);
update(next);
}, lifetime());
_controller->activeChatsFilter(