Fix send-as button appearance after joining the group.
This commit is contained in:
parent
7091fb9448
commit
9b74958fab
|
@ -30,6 +30,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_chat.h"
|
#include "data/data_chat.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
#include "data/data_forum_topic.h"
|
#include "data/data_forum_topic.h"
|
||||||
|
#include "data/data_peer_values.h"
|
||||||
#include "data/stickers/data_stickers.h"
|
#include "data/stickers/data_stickers.h"
|
||||||
#include "data/stickers/data_custom_emoji.h"
|
#include "data/stickers/data_custom_emoji.h"
|
||||||
#include "data/data_web_page.h"
|
#include "data/data_web_page.h"
|
||||||
|
@ -987,12 +988,12 @@ void ComposeControls::setHistory(SetHistoryArgs &&args) {
|
||||||
updateControlsGeometry(_wrap->size());
|
updateControlsGeometry(_wrap->size());
|
||||||
updateControlsVisibility();
|
updateControlsVisibility();
|
||||||
updateFieldPlaceholder();
|
updateFieldPlaceholder();
|
||||||
updateSendAsButton();
|
|
||||||
updateAttachBotsMenu();
|
updateAttachBotsMenu();
|
||||||
//if (!_history) {
|
//if (!_history) {
|
||||||
// return;
|
// return;
|
||||||
//}
|
//}
|
||||||
const auto peer = _history->peer;
|
const auto peer = _history->peer;
|
||||||
|
initSendAsButton(peer);
|
||||||
if (peer->isChat() && peer->asChat()->noParticipantInfo()) {
|
if (peer->isChat() && peer->asChat()->noParticipantInfo()) {
|
||||||
session().api().requestFullPeer(peer);
|
session().api().requestFullPeer(peer);
|
||||||
} else if (const auto channel = peer->asMegagroup()) {
|
} else if (const auto channel = peer->asMegagroup()) {
|
||||||
|
@ -1342,7 +1343,6 @@ void ComposeControls::init() {
|
||||||
initField();
|
initField();
|
||||||
initTabbedSelector();
|
initTabbedSelector();
|
||||||
initSendButton();
|
initSendButton();
|
||||||
initSendAsButton();
|
|
||||||
initWriteRestriction();
|
initWriteRestriction();
|
||||||
initVoiceRecordBar();
|
initVoiceRecordBar();
|
||||||
initKeyHandler();
|
initKeyHandler();
|
||||||
|
@ -2058,17 +2058,24 @@ void ComposeControls::initSendButton() {
|
||||||
SendMenu::DefaultScheduleCallback(_wrap.get(), sendMenuType(), send));
|
SendMenu::DefaultScheduleCallback(_wrap.get(), sendMenuType(), send));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComposeControls::initSendAsButton() {
|
void ComposeControls::initSendAsButton(not_null<PeerData*> peer) {
|
||||||
session().sendAsPeers().updated(
|
using namespace rpl::mappers;
|
||||||
) | rpl::filter([=](not_null<PeerData*> peer) {
|
|
||||||
return _history && (peer == _history->peer);
|
// SendAsPeers::shouldChoose checks PeerData::canWrite(false).
|
||||||
}) | rpl::start_with_next([=] {
|
rpl::combine(
|
||||||
|
rpl::single(peer) | rpl::then(
|
||||||
|
session().sendAsPeers().updated() | rpl::filter(_1 == peer)
|
||||||
|
),
|
||||||
|
Data::CanWriteValue(peer, false)
|
||||||
|
) | rpl::skip(1) | rpl::start_with_next([=] {
|
||||||
if (updateSendAsButton()) {
|
if (updateSendAsButton()) {
|
||||||
updateControlsVisibility();
|
updateControlsVisibility();
|
||||||
updateControlsGeometry(_wrap->size());
|
updateControlsGeometry(_wrap->size());
|
||||||
orderControls();
|
orderControls();
|
||||||
}
|
}
|
||||||
}, _wrap->lifetime());
|
}, _wrap->lifetime());
|
||||||
|
|
||||||
|
updateSendAsButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComposeControls::cancelInlineBot() {
|
void ComposeControls::cancelInlineBot() {
|
||||||
|
|
|
@ -210,7 +210,7 @@ private:
|
||||||
void initField();
|
void initField();
|
||||||
void initTabbedSelector();
|
void initTabbedSelector();
|
||||||
void initSendButton();
|
void initSendButton();
|
||||||
void initSendAsButton();
|
void initSendAsButton(not_null<PeerData*> peer);
|
||||||
void initWebpageProcess();
|
void initWebpageProcess();
|
||||||
void initForwardProcess();
|
void initForwardProcess();
|
||||||
void initWriteRestriction();
|
void initWriteRestriction();
|
||||||
|
|
Loading…
Reference in New Issue