Updated TDesktop sources to 2.7.3+d984c59

This commit is contained in:
Eric Kotato 2021-04-28 01:24:56 +03:00
commit 84ba90f037
28 changed files with 188 additions and 92 deletions

View file

@ -121,6 +121,11 @@ jobs:
- name: Choco installs. - name: Choco installs.
run: choco install --no-progress -y nasm yasm jom ninja 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. - name: Patches.
shell: bash shell: bash
run: | run: |
@ -286,6 +291,10 @@ jobs:
msbuild -m opus.sln /property:Configuration=Debug /property:Platform="Win32" msbuild -m opus.sln /property:Configuration=Debug /property:Platform="Win32"
msbuild -m opus.sln /property:Configuration=Release /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. - name: FFmpeg cache.
id: cache-ffmpeg id: cache-ffmpeg
uses: actions/cache@v2 uses: actions/cache@v2

View file

@ -1910,6 +1910,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_payments_shipping_address_title" = "Shipping Information"; "lng_payments_shipping_address_title" = "Shipping Information";
"lng_payments_card_title" = "New Card"; "lng_payments_card_title" = "New Card";
"lng_payments_card_number" = "Card Number"; "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_card_holder" = "Cardholder name";
"lng_payments_billing_address" = "Billing Information"; "lng_payments_billing_address" = "Billing Information";
"lng_payments_billing_country" = "Country"; "lng_payments_billing_country" = "Country";

View file

@ -9,7 +9,7 @@
<Identity Name="TelegramMessengerLLP.TelegramDesktop" <Identity Name="TelegramMessengerLLP.TelegramDesktop"
ProcessorArchitecture="ARCHITECTURE" ProcessorArchitecture="ARCHITECTURE"
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A" Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
Version="2.7.2.0" /> Version="2.7.3.0" />
<Properties> <Properties>
<DisplayName>Telegram Desktop</DisplayName> <DisplayName>Telegram Desktop</DisplayName>
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName> <PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>

View file

@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,7,2,0 FILEVERSION 2,7,3,0
PRODUCTVERSION 2,7,2,0 PRODUCTVERSION 2,7,3,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -62,10 +62,10 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Telegram FZ-LLC" VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop" VALUE "FileDescription", "Telegram Desktop"
VALUE "FileVersion", "2.7.2.0" VALUE "FileVersion", "2.7.3.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2021" VALUE "LegalCopyright", "Copyright (C) 2014-2021"
VALUE "ProductName", "Telegram Desktop" VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "2.7.2.0" VALUE "ProductVersion", "2.7.3.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,7,2,0 FILEVERSION 2,7,3,0
PRODUCTVERSION 2,7,2,0 PRODUCTVERSION 2,7,3,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -53,10 +53,10 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Telegram FZ-LLC" VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop Updater" VALUE "FileDescription", "Telegram Desktop Updater"
VALUE "FileVersion", "2.7.2.0" VALUE "FileVersion", "2.7.3.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2021" VALUE "LegalCopyright", "Copyright (C) 2014-2021"
VALUE "ProductName", "Telegram Desktop" VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "2.7.2.0" VALUE "ProductVersion", "2.7.3.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -208,6 +208,55 @@ callRemoteAudioMute: FlatLabel(callStatus) {
} }
callRemoteAudioMuteSkip: 12px; 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; callBarHeight: 38px;
callBarMuteToggle: IconButton { callBarMuteToggle: IconButton {
width: 41px; width: 41px;

View file

@ -269,14 +269,18 @@ GroupCall::~GroupCall() {
destroyController(); destroyController();
} }
void GroupCall::setScheduledDate(TimeId date) {
const auto was = _scheduleDate;
_scheduleDate = date;
if (was && !date) {
join(inputCall());
}
}
void GroupCall::subscribeToReal(not_null<Data::GroupCall*> real) { void GroupCall::subscribeToReal(not_null<Data::GroupCall*> real) {
real->scheduleDateValue( real->scheduleDateValue(
) | rpl::start_with_next([=](TimeId date) { ) | rpl::start_with_next([=](TimeId date) {
const auto was = _scheduleDate; setScheduledDate(date);
_scheduleDate = date;
if (was && !date) {
join(inputCall());
}
}, _lifetime); }, _lifetime);
} }
@ -821,11 +825,7 @@ void GroupCall::handlePossibleCreateOrJoinResponse(
void GroupCall::handlePossibleCreateOrJoinResponse( void GroupCall::handlePossibleCreateOrJoinResponse(
const MTPDgroupCall &data) { const MTPDgroupCall &data) {
if (const auto date = data.vschedule_date()) { setScheduledDate(data.vschedule_date().value_or_empty());
_scheduleDate = date->v;
} else {
_scheduleDate = 0;
}
if (_acceptFields) { if (_acceptFields) {
if (!_instance && !_id) { if (!_instance && !_id) {
const auto input = MTP_inputGroupCall( const auto input = MTP_inputGroupCall(

View file

@ -259,6 +259,7 @@ private:
void setJoinAs(not_null<PeerData*> as); void setJoinAs(not_null<PeerData*> as);
void saveDefaultJoinAs(not_null<PeerData*> as); void saveDefaultJoinAs(not_null<PeerData*> as);
void subscribeToReal(not_null<Data::GroupCall*> real); void subscribeToReal(not_null<Data::GroupCall*> real);
void setScheduledDate(TimeId date);
void audioLevelsUpdated(const tgcalls::GroupLevelsUpdate &data); void audioLevelsUpdated(const tgcalls::GroupLevelsUpdate &data);
void setInstanceConnected(tgcalls::GroupNetworkState networkState); void setInstanceConnected(tgcalls::GroupNetworkState networkState);

View file

@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "facades.h" // Global::ScreenIsLocked.
namespace Core { namespace Core {
namespace { namespace {
@ -135,6 +136,10 @@ void UiIntegration::startFontsBegin() {
} }
*/ */
bool UiIntegration::screenIsLocked() {
return Global::ScreenIsLocked();
}
QString UiIntegration::timeFormat() { QString UiIntegration::timeFormat() {
return cTimeFormat(); return cTimeFormat();
} }

View file

@ -41,6 +41,7 @@ public:
void textActionsUpdated() override; void textActionsUpdated() override;
void activationFromTopPanel() override; void activationFromTopPanel() override;
bool screenIsLocked() override;
QString timeFormat() override; QString timeFormat() override;
std::shared_ptr<ClickHandler> createLinkHandler( std::shared_ptr<ClickHandler> createLinkHandler(

View file

@ -23,7 +23,7 @@ constexpr auto AppId = "{C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5}"_cs;
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs; constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
constexpr auto AppName = "Kotatogram Desktop"_cs; constexpr auto AppName = "Kotatogram Desktop"_cs;
constexpr auto AppFile = "Kotatogram"_cs; constexpr auto AppFile = "Kotatogram"_cs;
constexpr auto AppVersion = 2007002; constexpr auto AppVersion = 2007003;
constexpr auto AppVersionStr = "2.7.2"; constexpr auto AppVersionStr = "2.7.3";
constexpr auto AppBetaVersion = false; constexpr auto AppBetaVersion = false;
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION; constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;

View file

@ -3001,9 +3001,14 @@ void OverlayWidget::switchToPip() {
_streamed->instance.shared(), _streamed->instance.shared(),
closeAndContinue, closeAndContinue,
[=] { _pip = nullptr; }); [=] { _pip = nullptr; });
close(); if (isHidden()) {
if (const auto window = Core::App().activeWindow()) { clearBeforeHide();
window->activate(); clearAfterHide();
} else {
close();
if (const auto window = Core::App().activeWindow()) {
window->activate();
}
} }
} }
@ -4369,42 +4374,50 @@ void OverlayWidget::applyHideWindowWorkaround() {
#endif // USE_OPENGL_OVERLAY_WIDGET #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) { void OverlayWidget::setVisibleHook(bool visible) {
if (!visible) { if (!visible) {
applyHideWindowWorkaround(); applyHideWindowWorkaround();
_sharedMedia = nullptr; clearBeforeHide();
_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();
} }
OverlayParent::setVisibleHook(visible); OverlayParent::setVisibleHook(visible);
if (visible) { if (visible) {
QCoreApplication::instance()->installEventFilter(this); QCoreApplication::instance()->installEventFilter(this);
} else { } else {
QCoreApplication::instance()->removeEventFilter(this); QCoreApplication::instance()->removeEventFilter(this);
clearAfterHide();
clearStreaming();
destroyThemePreview();
_radial.stop();
_staticContent = QPixmap();
_themePreview = nullptr;
_themeApply.destroyDelayed();
_themeCancel.destroyDelayed();
_themeShare.destroyDelayed();
} }
} }

View file

@ -210,6 +210,9 @@ private:
void playbackPauseMusic(); void playbackPauseMusic();
void switchToPip(); void switchToPip();
void clearBeforeHide();
void clearAfterHide();
void assignMediaPointer(DocumentData *document); void assignMediaPointer(DocumentData *document);
void assignMediaPointer(not_null<PhotoData*> photo); void assignMediaPointer(not_null<PhotoData*> photo);

View file

@ -303,12 +303,12 @@ not_null<RpWidget*> EditCard::setupContent() {
st::paymentsFieldPadding); st::paymentsFieldPadding);
_expire = make(container, { _expire = make(container, {
.type = FieldType::CardExpireDate, .type = FieldType::CardExpireDate,
.placeholder = rpl::single(u"MM / YY"_q), .placeholder = tr::lng_payments_card_expire_date(),
.validator = ExpireDateValidator(), .validator = ExpireDateValidator(),
}); });
_cvc = make(container, { _cvc = make(container, {
.type = FieldType::CardCVC, .type = FieldType::CardCVC,
.placeholder = rpl::single(u"CVC"_q), .placeholder = tr::lng_payments_card_cvc(),
.validator = CvcValidator([=] { return _number->value(); }), .validator = CvcValidator([=] { return _number->value(); }),
}); });
container->widthValue( container->widthValue(

View file

@ -196,7 +196,7 @@ void FormSummary::setupControls() {
_1 + _2 < _3)); _1 + _2 < _3));
rpl::merge( rpl::merge(
_submit->widthValue(), (_submit ? _submit->widthValue() : rpl::single(0)),
_cancel->widthValue() _cancel->widthValue()
) | rpl::skip(2) | rpl::start_with_next([=] { ) | rpl::skip(2) | rpl::start_with_next([=] {
updateControlsGeometry(); updateControlsGeometry();

View file

@ -60,8 +60,17 @@ void StartServiceAsync(
try { try {
result(); // get the error if any result(); // get the error if any
} catch (const Glib::Error &e) { } catch (const Glib::Error &e) {
LOG(("Native Notification Error: %1").arg( static const auto NotSupportedErrors = {
QString::fromStdString(e.what()))); "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) { } catch (const std::exception &e) {
LOG(("Native Notification Error: %1").arg( LOG(("Native Notification Error: %1").arg(
QString::fromStdString(e.what()))); QString::fromStdString(e.what())));
@ -72,9 +81,7 @@ void StartServiceAsync(
cancellable); cancellable);
return; return;
} catch (const Glib::Error &e) { } catch (...) {
LOG(("Native Notification Error: %1").arg(
QString::fromStdString(e.what())));
} }
crl::on_main([=] { callback(); }); crl::on_main([=] { callback(); });

View file

@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/core_settings.h" #include "core/core_settings.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "facades.h" // Global::ScreenIsLocked.
#include "windows_quiethours_h.h" #include "windows_quiethours_h.h"
#include <Shobjidl.h> #include <Shobjidl.h>
@ -798,14 +799,10 @@ bool SkipAudio() {
if (UserNotificationState == QUNS_NOT_PRESENT if (UserNotificationState == QUNS_NOT_PRESENT
|| UserNotificationState == QUNS_PRESENTATION_MODE || UserNotificationState == QUNS_PRESENTATION_MODE
|| QuietHoursEnabled || QuietHoursEnabled
|| FocusAssistBlocks) { || FocusAssistBlocks
|| Global::ScreenIsLocked()) {
return true; return true;
} }
if (const auto filter = EventFilter::GetInstance()) {
if (filter->sessionLoggedOff()) {
return true;
}
}
return false; return false;
} }

View file

@ -93,10 +93,6 @@ EventFilter *EventFilter::CreateInstance(not_null<MainWindow*> window) {
return (instance = new EventFilter(window)); return (instance = new EventFilter(window));
} }
EventFilter *EventFilter::GetInstance() {
return instance;
}
void EventFilter::Destroy() { void EventFilter::Destroy() {
Expects(instance != nullptr); Expects(instance != nullptr);
@ -240,9 +236,9 @@ bool EventFilter::mainWindowEvent(
case WM_WTSSESSION_CHANGE: { case WM_WTSSESSION_CHANGE: {
if (wParam == WTS_SESSION_LOGOFF || wParam == WTS_SESSION_LOCK) { if (wParam == WTS_SESSION_LOGOFF || wParam == WTS_SESSION_LOCK) {
setSessionLoggedOff(true); Global::SetScreenIsLocked(true);
} else if (wParam == WTS_SESSION_LOGON || wParam == WTS_SESSION_UNLOCK) { } else if (wParam == WTS_SESSION_LOGON || wParam == WTS_SESSION_UNLOCK) {
setSessionLoggedOff(false); Global::SetScreenIsLocked(false);
} }
} return false; } return false;

View file

@ -20,15 +20,7 @@ public:
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result); bool nativeEventFilter(const QByteArray &eventType, void *message, long *result);
bool mainWindowEvent(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *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<MainWindow*> window); static EventFilter *CreateInstance(not_null<MainWindow*> window);
static EventFilter *GetInstance();
static void Destroy(); static void Destroy();
private: private:
@ -42,7 +34,6 @@ private:
LRESULT *result); LRESULT *result);
not_null<MainWindow*> _window; not_null<MainWindow*> _window;
bool _sessionLoggedOff = false;
}; };

View file

@ -13,6 +13,10 @@
#include "ui/effects/radial_animation.h" #include "ui/effects/radial_animation.h"
#include "lottie/lottie_icon.h" #include "lottie/lottie_icon.h"
namespace st {
extern const style::InfiniteRadialAnimation &callConnectingRadial;
} // namespace st
namespace Ui { namespace Ui {
class BlobsWidget; class BlobsWidget;

View file

@ -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() const auto hideEverything = Core::App().passcodeLocked()
|| Global::ScreenIsLocked(); || forceHideDetails();
const auto view = Core::App().settings().notifyView(); const auto view = Core::App().settings().notifyView();
DisplayOptions result; DisplayOptions result;
@ -704,7 +705,7 @@ void Manager::notificationReplied(
void NativeManager::doShowNotification( void NativeManager::doShowNotification(
not_null<HistoryItem*> item, not_null<HistoryItem*> item,
int forwardedCount) { int forwardedCount) {
const auto options = GetNotificationOptions(item); const auto options = getNotificationOptions(item);
const auto peer = item->history()->peer; const auto peer = item->history()->peer;
const auto scheduled = !options.hideNameAndPhoto const auto scheduled = !options.hideNameAndPhoto
@ -740,6 +741,10 @@ void NativeManager::doShowNotification(
options.hideReplyButton); options.hideReplyButton);
} }
bool NativeManager::forceHideDetails() const {
return Global::ScreenIsLocked();
}
System::~System() = default; System::~System() = default;
QString WrapFromScheduled(const QString &text) { QString WrapFromScheduled(const QString &text) {

View file

@ -193,8 +193,8 @@ public:
bool hideMessageText = false; bool hideMessageText = false;
bool hideReplyButton = false; bool hideReplyButton = false;
}; };
[[nodiscard]] static DisplayOptions GetNotificationOptions( [[nodiscard]] DisplayOptions getNotificationOptions(
HistoryItem *item); HistoryItem *item) const;
[[nodiscard]] QString addTargetAccountName( [[nodiscard]] QString addTargetAccountName(
const QString &title, const QString &title,
@ -218,6 +218,9 @@ protected:
virtual void doClearFromItem(not_null<HistoryItem*> item) = 0; virtual void doClearFromItem(not_null<HistoryItem*> item) = 0;
virtual void doClearFromHistory(not_null<History*> history) = 0; virtual void doClearFromHistory(not_null<History*> history) = 0;
virtual void doClearFromSession(not_null<Main::Session*> session) = 0; virtual void doClearFromSession(not_null<Main::Session*> session) = 0;
[[nodiscard]] virtual bool forceHideDetails() const {
return false;
}
virtual void onBeforeNotificationActivated(NotificationId id) { virtual void onBeforeNotificationActivated(NotificationId id) {
} }
virtual void onAfterNotificationActivated( virtual void onAfterNotificationActivated(
@ -256,6 +259,8 @@ protected:
not_null<HistoryItem*> item, not_null<HistoryItem*> item,
int forwardedCount) override; int forwardedCount) override;
bool forceHideDetails() const override;
virtual void doShowNativeNotification( virtual void doShowNativeNotification(
not_null<PeerData*> peer, not_null<PeerData*> peer,
std::shared_ptr<Data::CloudImageView> &userpicView, std::shared_ptr<Data::CloudImageView> &userpicView,

View file

@ -725,7 +725,7 @@ void Notification::actionsOpacityCallback() {
void Notification::updateNotifyDisplay() { void Notification::updateNotifyDisplay() {
if (!_history || (!_item && _forwardedCount < 2)) return; if (!_history || (!_item && _forwardedCount < 2)) return;
const auto options = Manager::GetNotificationOptions(_item); const auto options = manager()->getNotificationOptions(_item);
_hideReplyButton = options.hideReplyButton; _hideReplyButton = options.hideReplyButton;
int32 w = width(), h = height(); int32 w = width(), h = height();

View file

@ -1,7 +1,7 @@
AppVersion 2007002 AppVersion 2007003
AppVersionStrMajor 2.7 AppVersionStrMajor 2.7
AppVersionStrSmall 2.7.2 AppVersionStrSmall 2.7.3
AppVersionStr 2.7.2 AppVersionStr 2.7.3
BetaChannel 0 BetaChannel 0
AlphaVersion 0 AlphaVersion 0
AppVersionOriginal 2.7.2 AppVersionOriginal 2.7.3

@ -1 +1 @@
Subproject commit 99dd340df02ac896c2238d4d9f23a86e163f2e02 Subproject commit f013f994d96e1924e46d88f5c92524ce5d7b4262

@ -1 +1 @@
Subproject commit 545a79203336b5b19bd3493d9fc18b54efa126b3 Subproject commit 0710f40dd1d6486c518d6e193a1b7d7a4f5c7a06

View file

@ -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) 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. - Offer real goods and services for sale in any group, channel or bot – Telegram doesn't charge a commission.

View file

@ -69,6 +69,8 @@ layout:
bind: $SNAP/usr/share/alsa bind: $SNAP/usr/share/alsa
/usr/share/X11: /usr/share/X11:
bind: $SNAP/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: parts:
kotatogram: kotatogram: