Pause story while viewing the viewers list.

This commit is contained in:
John Preston 2023-06-01 20:12:42 +04:00
parent d28bd36d22
commit 41edd41b92
3 changed files with 13 additions and 1 deletions

View File

@ -476,7 +476,8 @@ void Controller::updatePlayingAllowed() {
&& _windowActive
&& !_paused
&& !_replyActive
&& !_layerShown);
&& !_layerShown
&& !_menuShown);
}
void Controller::setPlayingAllowed(bool allowed) {
@ -656,6 +657,13 @@ void Controller::togglePaused(bool paused) {
}
}
void Controller::setMenuShown(bool shown) {
if (_menuShown != shown) {
_menuShown = shown;
updatePlayingAllowed();
}
}
bool Controller::canDownload() const {
return _list && _list->user->isSelf();
}

View File

@ -113,6 +113,7 @@ public:
[[nodiscard]] bool jumpFor(int delta);
[[nodiscard]] bool paused() const;
void togglePaused(bool paused);
void setMenuShown(bool shown);
[[nodiscard]] bool canDownload() const;
@ -174,6 +175,7 @@ private:
bool _replyFocused = false;
bool _replyActive = false;
bool _layerShown = false;
bool _menuShown = false;
bool _paused = false;
FullStoryId _shown;

View File

@ -286,7 +286,9 @@ void RecentViews::showMenu() {
rebuildMenuTail();
}, _menuShortLifetime);
_controller->setMenuShown(true);
_menu->setDestroyedCallback(crl::guard(_widget.get(), [=] {
_controller->setMenuShown(false);
_menuShortLifetime.destroy();
_menuEntries.clear();
_menuEntriesCount = 0;