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,14 +2259,16 @@ void RepliesWidget::updatePinnedVisibility() {
void RepliesWidget::setPinnedVisibility(bool shown) {
if (animatingShow()) {
return;
} else if (!_topic && !_rootViewInited) {
const auto height = shown ? st::historyReplyHeight : 0;
if (const auto delta = height - _rootViewHeight) {
_rootViewHeight = height;
if (_scroll->scrollTop() == _scroll->scrollTopMax()) {
setGeometryWithTopMoved(geometry(), delta);
} else {
updateControlsGeometry();
} else if (!_topic) {
if (!_rootViewInitScheduled) {
const auto height = shown ? st::historyReplyHeight : 0;
if (const auto delta = height - _rootViewHeight) {
_rootViewHeight = height;
if (_scroll->scrollTop() == _scroll->scrollTopMax()) {
setGeometryWithTopMoved(geometry(), delta);
} else {
updateControlsGeometry();
}
}
}
if (shown) {
@ -2275,8 +2277,15 @@ void RepliesWidget::setPinnedVisibility(bool shown) {
_rootView->hide();
}
_rootVisible = shown;
_rootView->finishAnimating();
_rootViewInited = true;
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;