Fix root view pinned bar glitch in comments.

This commit is contained in:
John Preston 2023-02-01 22:01:00 +04:00
parent e950130da6
commit c7b3c95dc6
2 changed files with 20 additions and 10 deletions

View file

@ -2259,7 +2259,8 @@ void RepliesWidget::updatePinnedVisibility() {
void RepliesWidget::setPinnedVisibility(bool shown) {
if (animatingShow()) {
return;
} else if (!_topic && !_rootViewInited) {
} else if (!_topic) {
if (!_rootViewInitScheduled) {
const auto height = shown ? st::historyReplyHeight : 0;
if (const auto delta = height - _rootViewHeight) {
_rootViewHeight = height;
@ -2269,14 +2270,22 @@ void RepliesWidget::setPinnedVisibility(bool shown) {
updateControlsGeometry();
}
}
}
if (shown) {
_rootView->show();
} else {
_rootView->hide();
}
_rootVisible = shown;
if (!_rootViewInited) {
_rootView->finishAnimating();
if (!_rootViewInitScheduled) {
_rootViewInitScheduled = true;
InvokeQueued(this, [=] {
_rootViewInited = true;
});
}
}
} else {
_rootVisible = shown;
}

View file

@ -340,6 +340,7 @@ private:
std::unique_ptr<Ui::PinnedBar> _rootView;
int _rootViewHeight = 0;
bool _rootViewInited = false;
bool _rootViewInitScheduled = false;
rpl::variable<bool> _rootVisible = false;
std::unique_ptr<Ui::ScrollArea> _scroll;