Updated TDesktop sources to 2.7.3+d984c59
This commit is contained in:
commit
84ba90f037
28 changed files with 188 additions and 92 deletions
9
.github/workflows/win.yml
vendored
9
.github/workflows/win.yml
vendored
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<Identity Name="TelegramMessengerLLP.TelegramDesktop"
|
||||
ProcessorArchitecture="ARCHITECTURE"
|
||||
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
|
||||
Version="2.7.2.0" />
|
||||
Version="2.7.3.0" />
|
||||
<Properties>
|
||||
<DisplayName>Telegram Desktop</DisplayName>
|
||||
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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<Data::GroupCall*> 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(
|
||||
|
|
|
|||
|
|
@ -259,6 +259,7 @@ private:
|
|||
void setJoinAs(not_null<PeerData*> as);
|
||||
void saveDefaultJoinAs(not_null<PeerData*> as);
|
||||
void subscribeToReal(not_null<Data::GroupCall*> real);
|
||||
void setScheduledDate(TimeId date);
|
||||
|
||||
void audioLevelsUpdated(const tgcalls::GroupLevelsUpdate &data);
|
||||
void setInstanceConnected(tgcalls::GroupNetworkState networkState);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ public:
|
|||
void textActionsUpdated() override;
|
||||
void activationFromTopPanel() override;
|
||||
|
||||
bool screenIsLocked() override;
|
||||
QString timeFormat() override;
|
||||
|
||||
std::shared_ptr<ClickHandler> createLinkHandler(
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -210,6 +210,9 @@ private:
|
|||
void playbackPauseMusic();
|
||||
void switchToPip();
|
||||
|
||||
void clearBeforeHide();
|
||||
void clearAfterHide();
|
||||
|
||||
void assignMediaPointer(DocumentData *document);
|
||||
void assignMediaPointer(not_null<PhotoData*> photo);
|
||||
|
||||
|
|
|
|||
|
|
@ -303,12 +303,12 @@ not_null<RpWidget*> 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(
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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(); });
|
||||
|
|
|
|||
|
|
@ -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 <Shobjidl.h>
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,10 +93,6 @@ EventFilter *EventFilter::CreateInstance(not_null<MainWindow*> 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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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<MainWindow*> window);
|
||||
static EventFilter *GetInstance();
|
||||
static void Destroy();
|
||||
|
||||
private:
|
||||
|
|
@ -42,7 +34,6 @@ private:
|
|||
LRESULT *result);
|
||||
|
||||
not_null<MainWindow*> _window;
|
||||
bool _sessionLoggedOff = false;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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<HistoryItem*> 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) {
|
||||
|
|
|
|||
|
|
@ -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<HistoryItem*> item) = 0;
|
||||
virtual void doClearFromHistory(not_null<History*> history) = 0;
|
||||
virtual void doClearFromSession(not_null<Main::Session*> session) = 0;
|
||||
[[nodiscard]] virtual bool forceHideDetails() const {
|
||||
return false;
|
||||
}
|
||||
virtual void onBeforeNotificationActivated(NotificationId id) {
|
||||
}
|
||||
virtual void onAfterNotificationActivated(
|
||||
|
|
@ -256,6 +259,8 @@ protected:
|
|||
not_null<HistoryItem*> item,
|
||||
int forwardedCount) override;
|
||||
|
||||
bool forceHideDetails() const override;
|
||||
|
||||
virtual void doShowNativeNotification(
|
||||
not_null<PeerData*> peer,
|
||||
std::shared_ptr<Data::CloudImageView> &userpicView,
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 99dd340df02ac896c2238d4d9f23a86e163f2e02
|
||||
Subproject commit f013f994d96e1924e46d88f5c92524ce5d7b4262
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 545a79203336b5b19bd3493d9fc18b54efa126b3
|
||||
Subproject commit 0710f40dd1d6486c518d6e193a1b7d7a4f5c7a06
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue