From 08717dcd78cc02d609224becdbf21992215c59a8 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 27 Feb 2024 05:05:00 +0300 Subject: [PATCH] Added counter label of characters limit to edit mode without media. --- Telegram/SourceFiles/history/history_widget.cpp | 10 +++++++--- .../view/controls/history_view_compose_controls.cpp | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 31667caef1..f288a18835 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -7316,12 +7316,16 @@ void HistoryWidget::checkCharsLimitation() { return; } const auto item = session().data().message(_history->peer, _editMsgId); - if (!item || !item->media() || !item->media()->allowsEditCaption()) { + if (!item) { _charsLimitation = nullptr; return; } - const auto remove = Ui::FieldCharacterCount(_field) - - Data::PremiumLimits(&session()).captionLengthCurrent(); + const auto hasMediaWithCaption = item->media() + && item->media()->allowsEditCaption(); + const auto maxCaptionSize = !hasMediaWithCaption + ? MaxMessageSize + : Data::PremiumLimits(&session()).captionLengthCurrent(); + const auto remove = Ui::FieldCharacterCount(_field) - maxCaptionSize; if (remove > 0) { if (!_charsLimitation) { _charsLimitation = base::make_unique_q( diff --git a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp index cabfedbabc..69f0f2de8c 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp @@ -3323,12 +3323,16 @@ void ComposeControls::checkCharsLimitation() { return; } const auto item = _history->owner().message(_header->editMsgId()); - if (!item || !item->media() || !item->media()->allowsEditCaption()) { + if (!item) { _charsLimitation = nullptr; return; } - const auto remove = Ui::FieldCharacterCount(_field) - - Data::PremiumLimits(&session()).captionLengthCurrent(); + const auto hasMediaWithCaption = item->media() + && item->media()->allowsEditCaption(); + const auto maxCaptionSize = !hasMediaWithCaption + ? MaxMessageSize + : Data::PremiumLimits(&session()).captionLengthCurrent(); + const auto remove = Ui::FieldCharacterCount(_field) - maxCaptionSize; if (remove > 0) { if (!_charsLimitation) { using namespace Controls;