diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index b247bc7935..12cc464255 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -2102,6 +2102,7 @@ void InnerWidget::refreshShownList() { : session().data().chatsList(_openedFolder)->indexed(); if (_shownList != list) { _shownList = list; + _shownList->updateHeights(_narrowRatio); } } diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index ae782a3844..339c1ef53e 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -787,6 +787,7 @@ void Widget::changeOpenedSubsection( oldContentCache = grabForFolderSlideAnimation(); } _showAnimation = nullptr; + destroyChildListCanvas(); change(); refreshTopBars(); updateControlsVisibility(true); @@ -807,6 +808,11 @@ void Widget::changeOpenedSubsection( } } +void Widget::destroyChildListCanvas() { + _childListShown = 0.; + _hideChildListCanvas = nullptr; +} + void Widget::changeOpenedFolder(Data::Folder *folder, anim::type animated) { if (_openedFolder == folder) { return; @@ -1987,8 +1993,7 @@ void Widget::openChildList( const auto animated = !_childList && (params.animated == anim::type::normal); if (animated) { - _childListShown = 0.; - _hideChildListCanvas = nullptr; + destroyChildListCanvas(); slide.oldContentCache = Ui::GrabWidget( this, QRect(_narrowWidth, 0, width() - _narrowWidth, height())); @@ -2086,8 +2091,7 @@ void Widget::closeChildList(anim::type animated) { _hideChildListCanvas->update(); }); animation->setFinishedCallback([=] { - _childListShown = 0.; - _hideChildListCanvas = nullptr; + destroyChildListCanvas(); }); animation->setPixmaps(oldContentCache, newContentCache); animation->start(); diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.h b/Telegram/SourceFiles/dialogs/dialogs_widget.h index 3f3c86aaf2..2528fbf6ed 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.h @@ -182,6 +182,7 @@ private: void changeOpenedFolder(Data::Folder *folder, anim::type animated); void changeOpenedForum(Data::Forum *forum, anim::type animated); void hideChildList(); + void destroyChildListCanvas(); [[nodiscard]] QPixmap grabForFolderSlideAnimation(); void startSlideAnimation( QPixmap oldContentCache,