diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml
index 12d0a1a2f..52e3de1d6 100644
--- a/.github/workflows/win.yml
+++ b/.github/workflows/win.yml
@@ -121,6 +121,11 @@ jobs:
- name: Choco installs.
run: choco install --no-progress -y nasm yasm jom ninja
+ - name: NuGet sources.
+ run: |
+ nuget sources Disable -Name "Microsoft Visual Studio Offline Packages"
+ nuget sources Add -Source https://api.nuget.org/v3/index.json & exit 0
+
- name: Patches.
shell: bash
run: |
@@ -286,6 +291,10 @@ jobs:
msbuild -m opus.sln /property:Configuration=Debug /property:Platform="Win32"
msbuild -m opus.sln /property:Configuration=Release /property:Platform="Win32"
+ echo "Workaround for FFmpeg."
+ copy Win32\Release\m.lib Win32\Release\ssp.lib
+ copy Win32\Release\m.lib Win32\Debug\ssp.lib
+
- name: FFmpeg cache.
id: cache-ffmpeg
uses: actions/cache@v2
diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings
index 76d1acc28..5678fa1a9 100644
--- a/Telegram/Resources/langs/lang.strings
+++ b/Telegram/Resources/langs/lang.strings
@@ -1910,6 +1910,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_payments_shipping_address_title" = "Shipping Information";
"lng_payments_card_title" = "New Card";
"lng_payments_card_number" = "Card Number";
+"lng_payments_card_cvc" = "CVC";
+"lng_payments_card_expire_date" = "MM / YY";
"lng_payments_card_holder" = "Cardholder name";
"lng_payments_billing_address" = "Billing Information";
"lng_payments_billing_country" = "Country";
diff --git a/Telegram/Resources/uwp/AppX/AppxManifest.xml b/Telegram/Resources/uwp/AppX/AppxManifest.xml
index d37ec5f62..eac8d2781 100644
--- a/Telegram/Resources/uwp/AppX/AppxManifest.xml
+++ b/Telegram/Resources/uwp/AppX/AppxManifest.xml
@@ -9,7 +9,7 @@
+ Version="2.7.3.0" />
Telegram Desktop
Telegram Messenger LLP
diff --git a/Telegram/Resources/winrc/Telegram.rc b/Telegram/Resources/winrc/Telegram.rc
index aead1df4f..daa8c8689 100644
--- a/Telegram/Resources/winrc/Telegram.rc
+++ b/Telegram/Resources/winrc/Telegram.rc
@@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,7,2,0
- PRODUCTVERSION 2,7,2,0
+ FILEVERSION 2,7,3,0
+ PRODUCTVERSION 2,7,3,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -62,10 +62,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop"
- VALUE "FileVersion", "2.7.2.0"
+ VALUE "FileVersion", "2.7.3.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2021"
VALUE "ProductName", "Telegram Desktop"
- VALUE "ProductVersion", "2.7.2.0"
+ VALUE "ProductVersion", "2.7.3.0"
END
END
BLOCK "VarFileInfo"
diff --git a/Telegram/Resources/winrc/Updater.rc b/Telegram/Resources/winrc/Updater.rc
index 817dc2afe..f8b1b42be 100644
--- a/Telegram/Resources/winrc/Updater.rc
+++ b/Telegram/Resources/winrc/Updater.rc
@@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,7,2,0
- PRODUCTVERSION 2,7,2,0
+ FILEVERSION 2,7,3,0
+ PRODUCTVERSION 2,7,3,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -53,10 +53,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop Updater"
- VALUE "FileVersion", "2.7.2.0"
+ VALUE "FileVersion", "2.7.3.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2021"
VALUE "ProductName", "Telegram Desktop"
- VALUE "ProductVersion", "2.7.2.0"
+ VALUE "ProductVersion", "2.7.3.0"
END
END
BLOCK "VarFileInfo"
diff --git a/Telegram/SourceFiles/calls/calls.style b/Telegram/SourceFiles/calls/calls.style
index 3368a28f1..b2201c1f9 100644
--- a/Telegram/SourceFiles/calls/calls.style
+++ b/Telegram/SourceFiles/calls/calls.style
@@ -208,6 +208,55 @@ callRemoteAudioMute: FlatLabel(callStatus) {
}
callRemoteAudioMuteSkip: 12px;
+callMuteMainBlobMinRadius: 57px;
+callMuteMainBlobMaxRadius: 63px;
+callMuteMinorBlobMinRadius: 64px;
+callMuteMinorBlobMaxRadius: 74px;
+callMuteMajorBlobMinRadius: 67px;
+callMuteMajorBlobMaxRadius: 77px;
+
+callMuteButtonActiveInner: IconButton {
+ width: 136px;
+ height: 165px;
+}
+callMuteButtonLabel: FlatLabel(defaultFlatLabel) {
+ textFg: groupCallMembersFg;
+ style: TextStyle(defaultTextStyle) {
+ font: font(14px);
+ linkFont: font(14px);
+ linkFontOver: font(14px underline);
+ }
+}
+callMuteButtonSublabel: FlatLabel(defaultFlatLabel) {
+ textFg: groupCallMemberNotJoinedStatus;
+}
+callMuteButtonLabelsSkip: 5px;
+callMuteButtonSublabelSkip: 19px;
+callMuteButtonActive: CallButton {
+ button: callMuteButtonActiveInner;
+ bg: groupCallLive1;
+ bgSize: 100px;
+ bgPosition: point(18px, 18px);
+ outerRadius: 18px;
+ outerBg: callAnswerBgOuter;
+ label: callMuteButtonLabel;
+}
+callMuteButtonMuted: CallButton(callMuteButtonActive) {
+ bg: groupCallMuted1;
+ label: callMuteButtonLabel;
+}
+callMuteButtonConnecting: CallButton(callMuteButtonMuted) {
+ bg: callIconBg;
+ label: callMuteButtonLabel;
+}
+callMuteButtonLabelAdditional: 5px;
+
+callConnectingRadial: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) {
+ color: lightButtonFg;
+ thickness: 4px;
+ size: size(100px, 100px);
+}
+
callBarHeight: 38px;
callBarMuteToggle: IconButton {
width: 41px;
diff --git a/Telegram/SourceFiles/calls/calls_group_call.cpp b/Telegram/SourceFiles/calls/calls_group_call.cpp
index 050f2cc42..8edb10426 100644
--- a/Telegram/SourceFiles/calls/calls_group_call.cpp
+++ b/Telegram/SourceFiles/calls/calls_group_call.cpp
@@ -269,14 +269,18 @@ GroupCall::~GroupCall() {
destroyController();
}
+void GroupCall::setScheduledDate(TimeId date) {
+ const auto was = _scheduleDate;
+ _scheduleDate = date;
+ if (was && !date) {
+ join(inputCall());
+ }
+}
+
void GroupCall::subscribeToReal(not_null real) {
real->scheduleDateValue(
) | rpl::start_with_next([=](TimeId date) {
- const auto was = _scheduleDate;
- _scheduleDate = date;
- if (was && !date) {
- join(inputCall());
- }
+ setScheduledDate(date);
}, _lifetime);
}
@@ -821,11 +825,7 @@ void GroupCall::handlePossibleCreateOrJoinResponse(
void GroupCall::handlePossibleCreateOrJoinResponse(
const MTPDgroupCall &data) {
- if (const auto date = data.vschedule_date()) {
- _scheduleDate = date->v;
- } else {
- _scheduleDate = 0;
- }
+ setScheduledDate(data.vschedule_date().value_or_empty());
if (_acceptFields) {
if (!_instance && !_id) {
const auto input = MTP_inputGroupCall(
diff --git a/Telegram/SourceFiles/calls/calls_group_call.h b/Telegram/SourceFiles/calls/calls_group_call.h
index 6e029418a..90f0f8f9f 100644
--- a/Telegram/SourceFiles/calls/calls_group_call.h
+++ b/Telegram/SourceFiles/calls/calls_group_call.h
@@ -259,6 +259,7 @@ private:
void setJoinAs(not_null as);
void saveDefaultJoinAs(not_null as);
void subscribeToReal(not_null real);
+ void setScheduledDate(TimeId date);
void audioLevelsUpdated(const tgcalls::GroupLevelsUpdate &data);
void setInstanceConnected(tgcalls::GroupNetworkState networkState);
diff --git a/Telegram/SourceFiles/core/ui_integration.cpp b/Telegram/SourceFiles/core/ui_integration.cpp
index be2e3b621..3118da235 100644
--- a/Telegram/SourceFiles/core/ui_integration.cpp
+++ b/Telegram/SourceFiles/core/ui_integration.cpp
@@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_session.h"
#include "main/main_app_config.h"
#include "mainwindow.h"
+#include "facades.h" // Global::ScreenIsLocked.
namespace Core {
namespace {
@@ -135,6 +136,10 @@ void UiIntegration::startFontsBegin() {
}
*/
+bool UiIntegration::screenIsLocked() {
+ return Global::ScreenIsLocked();
+}
+
QString UiIntegration::timeFormat() {
return cTimeFormat();
}
diff --git a/Telegram/SourceFiles/core/ui_integration.h b/Telegram/SourceFiles/core/ui_integration.h
index 2bcf54fda..2f9cfc618 100644
--- a/Telegram/SourceFiles/core/ui_integration.h
+++ b/Telegram/SourceFiles/core/ui_integration.h
@@ -41,6 +41,7 @@ public:
void textActionsUpdated() override;
void activationFromTopPanel() override;
+ bool screenIsLocked() override;
QString timeFormat() override;
std::shared_ptr createLinkHandler(
diff --git a/Telegram/SourceFiles/core/version.h b/Telegram/SourceFiles/core/version.h
index 1fa247c5a..1436fa6db 100644
--- a/Telegram/SourceFiles/core/version.h
+++ b/Telegram/SourceFiles/core/version.h
@@ -23,7 +23,7 @@ constexpr auto AppId = "{C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5}"_cs;
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
constexpr auto AppName = "Kotatogram Desktop"_cs;
constexpr auto AppFile = "Kotatogram"_cs;
-constexpr auto AppVersion = 2007002;
-constexpr auto AppVersionStr = "2.7.2";
+constexpr auto AppVersion = 2007003;
+constexpr auto AppVersionStr = "2.7.3";
constexpr auto AppBetaVersion = false;
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;
diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp
index 584572587..40a9564a7 100644
--- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp
+++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp
@@ -3001,9 +3001,14 @@ void OverlayWidget::switchToPip() {
_streamed->instance.shared(),
closeAndContinue,
[=] { _pip = nullptr; });
- close();
- if (const auto window = Core::App().activeWindow()) {
- window->activate();
+ if (isHidden()) {
+ clearBeforeHide();
+ clearAfterHide();
+ } else {
+ close();
+ if (const auto window = Core::App().activeWindow()) {
+ window->activate();
+ }
}
}
@@ -4369,42 +4374,50 @@ void OverlayWidget::applyHideWindowWorkaround() {
#endif // USE_OPENGL_OVERLAY_WIDGET
}
+// #TODO unite and check
+void OverlayWidget::clearBeforeHide() {
+ _sharedMedia = nullptr;
+ _sharedMediaData = std::nullopt;
+ _sharedMediaDataKey = std::nullopt;
+ _userPhotos = nullptr;
+ _userPhotosData = std::nullopt;
+ _collage = nullptr;
+ _collageData = std::nullopt;
+ assignMediaPointer(nullptr);
+ _preloadPhotos.clear();
+ _preloadDocuments.clear();
+ if (_menu) {
+ _menu->hideMenu(true);
+ }
+ _controlsHideTimer.cancel();
+ _controlsState = ControlsShown;
+ _controlsOpacity = anim::value(1, 1);
+ _groupThumbs = nullptr;
+ _groupThumbsRect = QRect();
+}
+
+void OverlayWidget::clearAfterHide() {
+ clearStreaming();
+ destroyThemePreview();
+ _radial.stop();
+ _staticContent = QPixmap();
+ _themePreview = nullptr;
+ _themeApply.destroyDelayed();
+ _themeCancel.destroyDelayed();
+ _themeShare.destroyDelayed();
+}
+
void OverlayWidget::setVisibleHook(bool visible) {
if (!visible) {
applyHideWindowWorkaround();
- _sharedMedia = nullptr;
- _sharedMediaData = std::nullopt;
- _sharedMediaDataKey = std::nullopt;
- _userPhotos = nullptr;
- _userPhotosData = std::nullopt;
- _collage = nullptr;
- _collageData = std::nullopt;
- assignMediaPointer(nullptr);
- _preloadPhotos.clear();
- _preloadDocuments.clear();
- if (_menu) {
- _menu->hideMenu(true);
- }
- _controlsHideTimer.cancel();
- _controlsState = ControlsShown;
- _controlsOpacity = anim::value(1, 1);
- _groupThumbs = nullptr;
- _groupThumbsRect = QRect();
+ clearBeforeHide();
}
OverlayParent::setVisibleHook(visible);
if (visible) {
QCoreApplication::instance()->installEventFilter(this);
} else {
QCoreApplication::instance()->removeEventFilter(this);
-
- clearStreaming();
- destroyThemePreview();
- _radial.stop();
- _staticContent = QPixmap();
- _themePreview = nullptr;
- _themeApply.destroyDelayed();
- _themeCancel.destroyDelayed();
- _themeShare.destroyDelayed();
+ clearAfterHide();
}
}
diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.h b/Telegram/SourceFiles/media/view/media_view_overlay_widget.h
index b76a9f261..dc9234e0a 100644
--- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.h
+++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.h
@@ -210,6 +210,9 @@ private:
void playbackPauseMusic();
void switchToPip();
+ void clearBeforeHide();
+ void clearAfterHide();
+
void assignMediaPointer(DocumentData *document);
void assignMediaPointer(not_null photo);
diff --git a/Telegram/SourceFiles/payments/ui/payments_edit_card.cpp b/Telegram/SourceFiles/payments/ui/payments_edit_card.cpp
index 95200b504..d09b6da23 100644
--- a/Telegram/SourceFiles/payments/ui/payments_edit_card.cpp
+++ b/Telegram/SourceFiles/payments/ui/payments_edit_card.cpp
@@ -303,12 +303,12 @@ not_null EditCard::setupContent() {
st::paymentsFieldPadding);
_expire = make(container, {
.type = FieldType::CardExpireDate,
- .placeholder = rpl::single(u"MM / YY"_q),
+ .placeholder = tr::lng_payments_card_expire_date(),
.validator = ExpireDateValidator(),
});
_cvc = make(container, {
.type = FieldType::CardCVC,
- .placeholder = rpl::single(u"CVC"_q),
+ .placeholder = tr::lng_payments_card_cvc(),
.validator = CvcValidator([=] { return _number->value(); }),
});
container->widthValue(
diff --git a/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp b/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp
index 3dfba7782..585acc352 100644
--- a/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp
+++ b/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp
@@ -196,7 +196,7 @@ void FormSummary::setupControls() {
_1 + _2 < _3));
rpl::merge(
- _submit->widthValue(),
+ (_submit ? _submit->widthValue() : rpl::single(0)),
_cancel->widthValue()
) | rpl::skip(2) | rpl::start_with_next([=] {
updateControlsGeometry();
diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
index cf5a07099..286cd6313 100644
--- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
@@ -60,8 +60,17 @@ void StartServiceAsync(
try {
result(); // get the error if any
} catch (const Glib::Error &e) {
- LOG(("Native Notification Error: %1").arg(
- QString::fromStdString(e.what())));
+ static const auto NotSupportedErrors = {
+ "org.freedesktop.DBus.Error.ServiceUnknown",
+ };
+
+ const auto errorName =
+ Gio::DBus::ErrorUtils::get_remote_error(e);
+
+ if (!ranges::contains(NotSupportedErrors, errorName)) {
+ LOG(("Native Notification Error: %1").arg(
+ QString::fromStdString(e.what())));
+ }
} catch (const std::exception &e) {
LOG(("Native Notification Error: %1").arg(
QString::fromStdString(e.what())));
@@ -72,9 +81,7 @@ void StartServiceAsync(
cancellable);
return;
- } catch (const Glib::Error &e) {
- LOG(("Native Notification Error: %1").arg(
- QString::fromStdString(e.what())));
+ } catch (...) {
}
crl::on_main([=] { callback(); });
diff --git a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp
index 217a930e1..25db6596a 100644
--- a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp
+++ b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp
@@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/core_settings.h"
#include "main/main_session.h"
#include "mainwindow.h"
+#include "facades.h" // Global::ScreenIsLocked.
#include "windows_quiethours_h.h"
#include
@@ -798,14 +799,10 @@ bool SkipAudio() {
if (UserNotificationState == QUNS_NOT_PRESENT
|| UserNotificationState == QUNS_PRESENTATION_MODE
|| QuietHoursEnabled
- || FocusAssistBlocks) {
+ || FocusAssistBlocks
+ || Global::ScreenIsLocked()) {
return true;
}
- if (const auto filter = EventFilter::GetInstance()) {
- if (filter->sessionLoggedOff()) {
- return true;
- }
- }
return false;
}
diff --git a/Telegram/SourceFiles/platform/win/windows_event_filter.cpp b/Telegram/SourceFiles/platform/win/windows_event_filter.cpp
index ce89b6620..29affd3ff 100644
--- a/Telegram/SourceFiles/platform/win/windows_event_filter.cpp
+++ b/Telegram/SourceFiles/platform/win/windows_event_filter.cpp
@@ -93,10 +93,6 @@ EventFilter *EventFilter::CreateInstance(not_null window) {
return (instance = new EventFilter(window));
}
-EventFilter *EventFilter::GetInstance() {
- return instance;
-}
-
void EventFilter::Destroy() {
Expects(instance != nullptr);
@@ -240,9 +236,9 @@ bool EventFilter::mainWindowEvent(
case WM_WTSSESSION_CHANGE: {
if (wParam == WTS_SESSION_LOGOFF || wParam == WTS_SESSION_LOCK) {
- setSessionLoggedOff(true);
+ Global::SetScreenIsLocked(true);
} else if (wParam == WTS_SESSION_LOGON || wParam == WTS_SESSION_UNLOCK) {
- setSessionLoggedOff(false);
+ Global::SetScreenIsLocked(false);
}
} return false;
diff --git a/Telegram/SourceFiles/platform/win/windows_event_filter.h b/Telegram/SourceFiles/platform/win/windows_event_filter.h
index a0dbd9d1e..de48509ff 100644
--- a/Telegram/SourceFiles/platform/win/windows_event_filter.h
+++ b/Telegram/SourceFiles/platform/win/windows_event_filter.h
@@ -20,15 +20,7 @@ public:
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result);
bool mainWindowEvent(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *result);
- bool sessionLoggedOff() const {
- return _sessionLoggedOff;
- }
- void setSessionLoggedOff(bool loggedOff) {
- _sessionLoggedOff = loggedOff;
- }
-
static EventFilter *CreateInstance(not_null window);
- static EventFilter *GetInstance();
static void Destroy();
private:
@@ -42,7 +34,6 @@ private:
LRESULT *result);
not_null _window;
- bool _sessionLoggedOff = false;
};
diff --git a/Telegram/SourceFiles/ui/controls/call_mute_button.h b/Telegram/SourceFiles/ui/controls/call_mute_button.h
index eb9f604dc..924489acc 100644
--- a/Telegram/SourceFiles/ui/controls/call_mute_button.h
+++ b/Telegram/SourceFiles/ui/controls/call_mute_button.h
@@ -13,6 +13,10 @@
#include "ui/effects/radial_animation.h"
#include "lottie/lottie_icon.h"
+namespace st {
+extern const style::InfiniteRadialAnimation &callConnectingRadial;
+} // namespace st
+
namespace Ui {
class BlobsWidget;
diff --git a/Telegram/SourceFiles/window/notifications_manager.cpp b/Telegram/SourceFiles/window/notifications_manager.cpp
index 7fa80ff0f..8e4d95bfb 100644
--- a/Telegram/SourceFiles/window/notifications_manager.cpp
+++ b/Telegram/SourceFiles/window/notifications_manager.cpp
@@ -578,9 +578,10 @@ void System::updateAll() {
}
}
-Manager::DisplayOptions Manager::GetNotificationOptions(HistoryItem *item) {
+Manager::DisplayOptions Manager::getNotificationOptions(
+ HistoryItem *item) const {
const auto hideEverything = Core::App().passcodeLocked()
- || Global::ScreenIsLocked();
+ || forceHideDetails();
const auto view = Core::App().settings().notifyView();
DisplayOptions result;
@@ -704,7 +705,7 @@ void Manager::notificationReplied(
void NativeManager::doShowNotification(
not_null item,
int forwardedCount) {
- const auto options = GetNotificationOptions(item);
+ const auto options = getNotificationOptions(item);
const auto peer = item->history()->peer;
const auto scheduled = !options.hideNameAndPhoto
@@ -740,6 +741,10 @@ void NativeManager::doShowNotification(
options.hideReplyButton);
}
+bool NativeManager::forceHideDetails() const {
+ return Global::ScreenIsLocked();
+}
+
System::~System() = default;
QString WrapFromScheduled(const QString &text) {
diff --git a/Telegram/SourceFiles/window/notifications_manager.h b/Telegram/SourceFiles/window/notifications_manager.h
index 24742cb20..83c8ad347 100644
--- a/Telegram/SourceFiles/window/notifications_manager.h
+++ b/Telegram/SourceFiles/window/notifications_manager.h
@@ -193,8 +193,8 @@ public:
bool hideMessageText = false;
bool hideReplyButton = false;
};
- [[nodiscard]] static DisplayOptions GetNotificationOptions(
- HistoryItem *item);
+ [[nodiscard]] DisplayOptions getNotificationOptions(
+ HistoryItem *item) const;
[[nodiscard]] QString addTargetAccountName(
const QString &title,
@@ -218,6 +218,9 @@ protected:
virtual void doClearFromItem(not_null item) = 0;
virtual void doClearFromHistory(not_null history) = 0;
virtual void doClearFromSession(not_null session) = 0;
+ [[nodiscard]] virtual bool forceHideDetails() const {
+ return false;
+ }
virtual void onBeforeNotificationActivated(NotificationId id) {
}
virtual void onAfterNotificationActivated(
@@ -256,6 +259,8 @@ protected:
not_null item,
int forwardedCount) override;
+ bool forceHideDetails() const override;
+
virtual void doShowNativeNotification(
not_null peer,
std::shared_ptr &userpicView,
diff --git a/Telegram/SourceFiles/window/notifications_manager_default.cpp b/Telegram/SourceFiles/window/notifications_manager_default.cpp
index d6cf3352e..13dce6768 100644
--- a/Telegram/SourceFiles/window/notifications_manager_default.cpp
+++ b/Telegram/SourceFiles/window/notifications_manager_default.cpp
@@ -725,7 +725,7 @@ void Notification::actionsOpacityCallback() {
void Notification::updateNotifyDisplay() {
if (!_history || (!_item && _forwardedCount < 2)) return;
- const auto options = Manager::GetNotificationOptions(_item);
+ const auto options = manager()->getNotificationOptions(_item);
_hideReplyButton = options.hideReplyButton;
int32 w = width(), h = height();
diff --git a/Telegram/build/version b/Telegram/build/version
index 147948fbc..559ba17ac 100644
--- a/Telegram/build/version
+++ b/Telegram/build/version
@@ -1,7 +1,7 @@
-AppVersion 2007002
+AppVersion 2007003
AppVersionStrMajor 2.7
-AppVersionStrSmall 2.7.2
-AppVersionStr 2.7.2
+AppVersionStrSmall 2.7.3
+AppVersionStr 2.7.3
BetaChannel 0
AlphaVersion 0
-AppVersionOriginal 2.7.2
+AppVersionOriginal 2.7.3
diff --git a/Telegram/lib_base b/Telegram/lib_base
index 99dd340df..f013f994d 160000
--- a/Telegram/lib_base
+++ b/Telegram/lib_base
@@ -1 +1 @@
-Subproject commit 99dd340df02ac896c2238d4d9f23a86e163f2e02
+Subproject commit f013f994d96e1924e46d88f5c92524ce5d7b4262
diff --git a/Telegram/lib_ui b/Telegram/lib_ui
index 545a79203..0710f40dd 160000
--- a/Telegram/lib_ui
+++ b/Telegram/lib_ui
@@ -1 +1 @@
-Subproject commit 545a79203336b5b19bd3493d9fc18b54efa126b3
+Subproject commit 0710f40dd1d6486c518d6e193a1b7d7a4f5c7a06
diff --git a/changelog.txt b/changelog.txt
index a327fc22e..52e7e7ea5 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,9 @@
+2.7.3 (27.04.21)
+
+- Fix crash on some versions of Linux.
+- Fix video not stopping when PiP window is closed.
+- Fix messages marking as read if the Windows session is locked.
+
2.7.2 (26.04.21)
- Offer real goods and services for sale in any group, channel or bot – Telegram doesn't charge a commission.
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 53813ea39..427371560 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -69,6 +69,8 @@ layout:
bind: $SNAP/usr/share/alsa
/usr/share/X11:
bind: $SNAP/usr/share/X11
+ /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0:
+ bind: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0
parts:
kotatogram: