Fixed updating over state in history widget when edit spoiler of media.

This commit is contained in:
23rd 2024-08-21 20:00:48 +03:00
parent 4ee7d46d78
commit 13737577e7
3 changed files with 13 additions and 0 deletions

View file

@ -330,6 +330,10 @@ HistoryWidget::HistoryWidget(
_fieldBarCancel->addClickHandler([=] { cancelFieldAreaState(); }); _fieldBarCancel->addClickHandler([=] { cancelFieldAreaState(); });
_send->addClickHandler([=] { sendButtonClicked(); }); _send->addClickHandler([=] { sendButtonClicked(); });
_mediaEditManager.updateRequests() | rpl::start_with_next([this] {
updateOverStates(mapFromGlobal(QCursor::pos()));
}, lifetime());
{ {
using namespace SendMenu; using namespace SendMenu;
const auto sendAction = [=](Action action, Details) { const auto sendAction = [=](Action action, Details) {

View file

@ -53,6 +53,7 @@ void MediaEditManager::apply(SendMenu::Action action) {
} else if (action.type == Type::SpoilerOff) { } else if (action.type == Type::SpoilerOff) {
_spoilered = false; _spoilered = false;
} }
_updateRequests.fire({});
} }
void MediaEditManager::cancel() { void MediaEditManager::cancel() {
@ -145,6 +146,10 @@ SendMenu::Details MediaEditManager::sendMenuDetails(
}; };
} }
rpl::producer<> MediaEditManager::updateRequests() const {
return _updateRequests.events();
}
bool MediaEditManager::CanBeSpoilered(not_null<HistoryItem*> item) { bool MediaEditManager::CanBeSpoilered(not_null<HistoryItem*> item) {
const auto media = item ? item->media() : nullptr; const auto media = item ? item->media() : nullptr;
const auto editingMedia = media && media->allowsEditMedia(); const auto editingMedia = media && media->allowsEditMedia();

View file

@ -48,6 +48,8 @@ public:
[[nodiscard]] SendMenu::Details sendMenuDetails( [[nodiscard]] SendMenu::Details sendMenuDetails(
bool hasCaptionText) const; bool hasCaptionText) const;
[[nodiscard]] rpl::producer<> updateRequests() const;
[[nodiscard]] explicit operator bool() const { [[nodiscard]] explicit operator bool() const {
return _item != nullptr; return _item != nullptr;
} }
@ -60,6 +62,8 @@ private:
bool _spoilered = false; bool _spoilered = false;
bool _invertCaption = false; bool _invertCaption = false;
rpl::event_stream<> _updateRequests;
rpl::lifetime _lifetime; rpl::lifetime _lifetime;
}; };