From 99a8c93ac1e3f90868ef3d419fc3ccfd0a1cc2ee Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sat, 14 Mar 2020 23:35:51 +0400 Subject: [PATCH 01/10] Fix build with gcc 9 --- .../SourceFiles/platform/linux/notifications_manager_linux.cpp | 2 +- Telegram/SourceFiles/platform/linux/specific_linux.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp index 6b9057437..86382ab81 100644 --- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp @@ -104,7 +104,7 @@ bool Inhibited() { const QDBusReply reply = QDBusConnection::sessionBus().call( message); - constexpr auto notSupportedErrors = { + const auto notSupportedErrors = { QDBusError::ServiceUnknown, QDBusError::InvalidArgs, }; diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index b9c5d3f0b..916a26360 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -374,7 +374,7 @@ std::optional LastUserInputTime() { const QDBusReply reply = QDBusConnection::sessionBus().call( message); - constexpr auto notSupportedErrors = { + const auto notSupportedErrors = { QDBusError::ServiceUnknown, QDBusError::NotSupported, }; From 9f0d6e9fab022151a71112e7f00c1977033bd11c Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sat, 14 Mar 2020 12:23:14 +0000 Subject: [PATCH 02/10] Add DESKTOP_APP_DISABLE_DBUS_INTEGRATION to matrix of Linux GitHub action defines --- .github/workflows/linux.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c9e9878ee..eb84dc942 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,6 +21,7 @@ jobs: matrix: defines: - "" + - "DESKTOP_APP_DISABLE_DBUS_INTEGRATION" env: GIT: "https://github.com" From da926d7f10ea172085a398f612639ae0a52f7c73 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 15 Mar 2020 06:55:32 +0400 Subject: [PATCH 03/10] Disable SNI tray icon name setting in snap Otherwise there are a dummy icon when tray counter is disabled --- Telegram/SourceFiles/platform/linux/main_window_linux.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp index d4abdcf7c..874e37078 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp @@ -451,7 +451,7 @@ void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) { const auto iconName = GetTrayIconName(counter, muted); if (qEnvironmentVariableIsSet(kDisableTrayCounter.utf8()) - && (!iconName.isEmpty() + && ((!iconName.isEmpty() && !InSnap()) || qEnvironmentVariableIsSet(kForcePanelIcon.utf8()))) { if (_sniTrayIcon->iconName() == iconName) { return; From d47e94ea4dce253a9f26619ffcf6763e40edf00c Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sat, 14 Mar 2020 23:52:43 +0400 Subject: [PATCH 04/10] Fallback to launcher basename if FLATPAK_ID variable is empty --- Telegram/SourceFiles/platform/linux/specific_linux.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index 916a26360..9e77745bf 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -280,8 +280,16 @@ QString AppRuntimeDirectory() { QStandardPaths::RuntimeLocation); if (InSandbox()) { + const auto flatpakId = [&] { + if (!qEnvironmentVariableIsEmpty("FLATPAK_ID")) { + return QString::fromLatin1(qgetenv("FLATPAK_ID")); + } else { + return GetLauncherBasename(); + } + }(); + runtimeDir += qsl("/app/") - + QString::fromLatin1(qgetenv("FLATPAK_ID")); + + flatpakId; } if (!QFileInfo::exists(runtimeDir)) { // non-systemd distros From 3f661cc02887e5ffb09579d1f08d8d6a7227d017 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 15 Mar 2020 03:45:21 +0400 Subject: [PATCH 05/10] Use custom fontconfig file in snap to avoid problems with host fontconfig --- snap/snapcraft.yaml | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1c8fb4824..dddf80925 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -118,6 +118,10 @@ parts: snapcraftctl set-version "$version" sed -i 's|^Icon=.*|Icon=/share/icons/hicolor/512x512/apps/telegram.png|g' lib/xdg/telegramdesktop.desktop + override-build: | + snapcraftctl build + mkdir -p "$SNAPCRAFT_PART_INSTALL/etc/fonts" + cp "$SNAPCRAFT_PART_SRC/Telegram/lib_ui/qt_conf/fc-custom.conf" "$SNAPCRAFT_PART_INSTALL/etc/fonts/fonts.conf" after: - cmake - desktop-qt5 @@ -155,11 +159,13 @@ parts: - locales-all - xdg-user-dirs - fcitx-frontend-qt5 + stage: [-etc/fonts/fonts.conf] qt5-gtk-platform: plugin: nil stage-packages: - qt5-gtk-platformtheme + stage: [-etc/fonts/fonts.conf] cmake: source: "https://gitlab.kitware.com/cmake/cmake.git" @@ -191,59 +197,37 @@ parts: source-branch: release/4.2 plugin: autotools build-packages: - - libtool - - pkg-config - - texi2html - yasm - - libass-dev - - libfreetype6-dev - - libgpac-dev - - liblzma-dev + - libasound2-dev - libopus-dev - - libsdl1.2-dev - - libtheora-dev - libva-dev - libvdpau-dev - - libvorbis-dev - - libxcb1-dev - - libxcb-shm0-dev - - libxcb-xfixes0-dev - - zlib1g-dev stage-packages: - - freeglut3 - - libass9 - - libfreetype6 - - libgpac4 - - liblzma5 + - libasound2 - libopus0 - - libslang2 - - libsdl1.2debian - - libtheora0 - libva2 - libva-drm2 - libvdpau1 - - libvorbis0a - - libxcb1 - - libxcb-shm0 - - libxcb-xfixes0 - - zlib1g configflags: - --prefix=/usr - --disable-debug - --disable-programs - --disable-doc + - --disable-autodetect - --disable-everything - --disable-neon + - --disable-iconv - --enable-gpl - --enable-version3 - --enable-libopus + - --enable-vaapi + - --enable-vdpau - --enable-decoder=aac - --enable-decoder=aac_latm - --enable-decoder=aasc - --enable-decoder=flac - --enable-decoder=gif - --enable-decoder=h264 - - --enable-decoder=h264_vdpau - --enable-decoder=mp1 - --enable-decoder=mp1float - --enable-decoder=mp2 @@ -255,7 +239,6 @@ parts: - --enable-decoder=mp3on4 - --enable-decoder=mp3on4float - --enable-decoder=mpeg4 - - --enable-decoder=mpeg4_vdpau - --enable-decoder=msmpeg4v2 - --enable-decoder=msmpeg4v3 - --enable-decoder=opus From 0b5eb47b373ee1784989ef67fbb39eb8d1ba819e Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 15 Mar 2020 00:12:57 +0400 Subject: [PATCH 06/10] Avoid usage of QDBusInterface in StatusNotifierItem to avoid crashes --- .../statusnotifieritem/statusnotifieritem.cpp | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/Telegram/ThirdParty/statusnotifieritem/statusnotifieritem.cpp b/Telegram/ThirdParty/statusnotifieritem/statusnotifieritem.cpp index a55079740..38f0eea1c 100644 --- a/Telegram/ThirdParty/statusnotifieritem/statusnotifieritem.cpp +++ b/Telegram/ThirdParty/statusnotifieritem/statusnotifieritem.cpp @@ -27,8 +27,8 @@ #include "statusnotifieritem.h" #include "statusnotifieritemadaptor.h" -#include #include +#include #include int StatusNotifierItem::mServiceCounter = 0; @@ -75,11 +75,16 @@ StatusNotifierItem::~StatusNotifierItem() void StatusNotifierItem::registerToHost() { - QDBusInterface interface(QLatin1String("org.kde.StatusNotifierWatcher"), - QLatin1String("/StatusNotifierWatcher"), - QLatin1String("org.kde.StatusNotifierWatcher"), - mSessionBus); - interface.asyncCall(QLatin1String("RegisterStatusNotifierItem"), mSessionBus.baseService()); + QDBusMessage message = QDBusMessage::createMethodCall(QLatin1String("org.kde.StatusNotifierWatcher"), + QLatin1String("/StatusNotifierWatcher"), + QLatin1String("org.kde.StatusNotifierWatcher"), + QLatin1String("RegisterStatusNotifierItem")); + + message.setArguments({ + mSessionBus.baseService() + }); + + mSessionBus.send(message); } void StatusNotifierItem::onServiceOwnerChanged(const QString& service, const QString& oldOwner, @@ -292,10 +297,23 @@ void StatusNotifierItem::Scroll(int delta, const QString &orientation) void StatusNotifierItem::showMessage(const QString& title, const QString& msg, const QString& iconName, int secs) { - QDBusInterface interface(QLatin1String("org.freedesktop.Notifications"), QLatin1String("/org/freedesktop/Notifications"), - QLatin1String("org.freedesktop.Notifications"), mSessionBus); - interface.call(QLatin1String("Notify"), mTitle, (uint) 0, iconName, title, - msg, QStringList(), QVariantMap(), secs); + QDBusMessage message = QDBusMessage::createMethodCall(QLatin1String("org.freedesktop.Notifications"), + QLatin1String("/org/freedesktop/Notifications"), + QLatin1String("org.freedesktop.Notifications"), + QLatin1String("Notify")); + + message.setArguments({ + mTitle, + (uint) 0, + iconName, + title, + msg, + QStringList(), + QVariantMap(), + secs + }); + + mSessionBus.send(message); } IconPixmapList StatusNotifierItem::iconToPixmapList(const QIcon& icon) From 9823615a84e302f281fe5fb6fbe5754f0b981525 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Mon, 16 Mar 2020 15:43:15 +0400 Subject: [PATCH 07/10] Check if icon has desired size when saving --- .../platform/linux/main_window_linux.cpp | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp index 874e37078..347395ab3 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp @@ -167,8 +167,7 @@ QIcon TrayIconGen(int counter, bool muted) { .pixmap(desiredSize) .toImage(); } else { - const auto availableSizes = systemIcon - .availableSizes(); + const auto availableSizes = systemIcon.availableSizes(); const auto biggestSize = ranges::max_element( availableSizes, @@ -260,12 +259,33 @@ std::unique_ptr TrayIconFile( static const auto templateName = AppRuntimeDirectory() + kTrayIconFilename.utf16(); + const auto desiredSize = QSize(size, size); + auto ret = std::make_unique( templateName, parent); ret->open(); - icon.pixmap(size).save(ret.get()); + + if (icon.actualSize(desiredSize) == desiredSize) { + icon.pixmap(desiredSize).save(ret.get()); + } else { + const auto availableSizes = icon.availableSizes(); + + const auto biggestSize = ranges::max_element( + availableSizes, + std::less<>(), + &QSize::width); + + icon + .pixmap(*biggestSize) + .scaled( + desiredSize, + Qt::IgnoreAspectRatio, + Qt::SmoothTransformation) + .save(ret.get()); + } + ret->close(); return ret; @@ -400,13 +420,13 @@ void MainWindow::initHook() { cSetSupportTray(trayAvailable); #ifndef TDESKTOP_DISABLE_DBUS_INTEGRATION - auto sniWatcher = new QDBusServiceWatcher( + auto sniWatcher = new QDBusServiceWatcher( kSNIWatcherService.utf16(), QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); - connect( + connect( sniWatcher, &QDBusServiceWatcher::serviceOwnerChanged, this, From 7b51383b3bba65a1e30761c53fab7a5484485d4b Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 16 Mar 2020 17:38:36 +0400 Subject: [PATCH 08/10] Force animation unload in inline results. Fixes #7335. --- .../chat_helpers/gifs_list_widget.cpp | 1 + .../inline_bots/inline_bot_layout_internal.cpp | 16 ++++++++++++---- .../inline_bots/inline_bot_layout_internal.h | 4 ++++ .../inline_bots/inline_bot_layout_item.h | 2 ++ .../inline_bots/inline_results_widget.cpp | 1 + 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp index ef9e8ecea..30d8a84bb 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp @@ -442,6 +442,7 @@ void GifsListWidget::processPanelHideFinished() { if (const auto result = item->getResult()) { result->unload(); } + item->unloadAnimation(); }; // Preserve panel state through visibility toggles. //clearInlineRows(false); diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp index a29cadc62..06dd1b0c8 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp @@ -357,6 +357,11 @@ void Gif::radialAnimationCallback(crl::time now) const { } } +void Gif::unloadAnimation() { + _gif.reset(); + getShownDocument()->unload(); +} + void Gif::clipCallback(Media::Clip::Notification notification) { using namespace Media::Clip; switch (notification) { @@ -370,8 +375,7 @@ void Gif::clipCallback(Media::Clip::Notification notification) { auto frame = countFrameSize(); _gif->start(frame.width(), frame.height(), _width, height, ImageRoundRadius::None, RectPart::None); } else if (_gif->autoPausedGif() && !context()->inlineItemVisible(this)) { - _gif.reset(); - getShownDocument()->unload(); + unloadAnimation(); } } @@ -1429,6 +1433,11 @@ void Game::radialAnimationCallback(crl::time now) const { } } +void Game::unloadAnimation() { + _gif.reset(); + getResultDocument()->unload(); +} + void Game::clipCallback(Media::Clip::Notification notification) { using namespace Media::Clip; switch (notification) { @@ -1440,8 +1449,7 @@ void Game::clipCallback(Media::Clip::Notification notification) { } else if (_gif->ready() && !_gif->started()) { _gif->start(_frameSize.width(), _frameSize.height(), st::inlineThumbSize, st::inlineThumbSize, ImageRoundRadius::None, RectPart::None); } else if (_gif->autoPausedGif() && !context()->inlineItemVisible(this)) { - _gif.reset(); - getResultDocument()->unload(); + unloadAnimation(); } } diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h index f98e2cd6b..a496f8535 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h @@ -75,6 +75,8 @@ public: int resizeGetHeight(int width) override; + void unloadAnimation() override; + private: QSize countFrameSize() const; @@ -370,6 +372,8 @@ public: QPoint point, StateRequest request) const override; + void unloadAnimation() override; + private: void countFrameSize(); diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h index b506d6cae..3ee685426 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h @@ -80,6 +80,8 @@ public: PhotoData *getPreviewPhoto() const; virtual void preload() const; + virtual void unloadAnimation() { + } void update() const; void layoutChanged(); diff --git a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp index 17e537944..83ce40017 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp @@ -304,6 +304,7 @@ void Inner::hideFinish(bool completely) { if (const auto result = item->getResult()) { result->unload(); } + item->unloadAnimation(); }; clearInlineRows(false); for (const auto &[result, layout] : _inlineLayouts) { From 4bd55605d9907e7ce3ed10cdef436fa3b8beccc2 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 16 Mar 2020 17:41:47 +0400 Subject: [PATCH 09/10] Revert "Set application display name" This reverts commit fda8a38bfc16aecd8721b5e560ef60c8447b157b. Fixes #7380. --- Telegram/SourceFiles/core/launcher.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Telegram/SourceFiles/core/launcher.cpp b/Telegram/SourceFiles/core/launcher.cpp index dceee3429..19d9c3bbf 100644 --- a/Telegram/SourceFiles/core/launcher.cpp +++ b/Telegram/SourceFiles/core/launcher.cpp @@ -247,7 +247,6 @@ void Launcher::init() { prepareSettings(); QApplication::setApplicationName(qsl("TelegramDesktop")); - QApplication::setApplicationDisplayName(AppName.utf16()); #if defined(Q_OS_LINUX) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) QApplication::setDesktopFileName(Platform::GetLauncherFilename()); From 0bd2d951fb74488ee23ae160d49eba977398fffb Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 16 Mar 2020 22:49:16 +0400 Subject: [PATCH 10/10] Version 1.9.21. - Mark new messages as read while scrolling down through them. - Improved spellchecking on Windows 7 and Linux. --- Telegram/Resources/uwp/AppX/AppxManifest.xml | 2 +- Telegram/Resources/winrc/Telegram.rc | 8 ++++---- Telegram/Resources/winrc/Updater.rc | 8 ++++---- Telegram/SourceFiles/core/version.h | 6 +++--- Telegram/build/version | 10 +++++----- changelog.txt | 5 +++++ 6 files changed, 22 insertions(+), 17 deletions(-) diff --git a/Telegram/Resources/uwp/AppX/AppxManifest.xml b/Telegram/Resources/uwp/AppX/AppxManifest.xml index 00a57955b..ab2fefff9 100644 --- a/Telegram/Resources/uwp/AppX/AppxManifest.xml +++ b/Telegram/Resources/uwp/AppX/AppxManifest.xml @@ -9,7 +9,7 @@ + Version="1.9.21.0" /> Telegram Desktop Telegram FZ-LLC diff --git a/Telegram/Resources/winrc/Telegram.rc b/Telegram/Resources/winrc/Telegram.rc index 979b17b0b..577fe7773 100644 --- a/Telegram/Resources/winrc/Telegram.rc +++ b/Telegram/Resources/winrc/Telegram.rc @@ -33,8 +33,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,9,20,0 - PRODUCTVERSION 1,9,20,0 + FILEVERSION 1,9,21,0 + PRODUCTVERSION 1,9,21,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -51,10 +51,10 @@ BEGIN BEGIN VALUE "CompanyName", "Telegram FZ-LLC" VALUE "FileDescription", "Telegram Desktop" - VALUE "FileVersion", "1.9.20.0" + VALUE "FileVersion", "1.9.21.0" VALUE "LegalCopyright", "Copyright (C) 2014-2020" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "1.9.20.0" + VALUE "ProductVersion", "1.9.21.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/Resources/winrc/Updater.rc b/Telegram/Resources/winrc/Updater.rc index 45eda8e21..17d878974 100644 --- a/Telegram/Resources/winrc/Updater.rc +++ b/Telegram/Resources/winrc/Updater.rc @@ -24,8 +24,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,9,20,0 - PRODUCTVERSION 1,9,20,0 + FILEVERSION 1,9,21,0 + PRODUCTVERSION 1,9,21,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -42,10 +42,10 @@ BEGIN BEGIN VALUE "CompanyName", "Telegram FZ-LLC" VALUE "FileDescription", "Telegram Desktop Updater" - VALUE "FileVersion", "1.9.20.0" + VALUE "FileVersion", "1.9.21.0" VALUE "LegalCopyright", "Copyright (C) 2014-2020" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "1.9.20.0" + VALUE "ProductVersion", "1.9.21.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/SourceFiles/core/version.h b/Telegram/SourceFiles/core/version.h index 2387991aa..a2b4c3860 100644 --- a/Telegram/SourceFiles/core/version.h +++ b/Telegram/SourceFiles/core/version.h @@ -22,7 +22,7 @@ constexpr auto AppId = "{53F49750-6209-4FBF-9CA8-7A333C87D1ED}"_cs; constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs; constexpr auto AppName = "Telegram Desktop"_cs; constexpr auto AppFile = "Telegram"_cs; -constexpr auto AppVersion = 1009020; -constexpr auto AppVersionStr = "1.9.20"; -constexpr auto AppBetaVersion = true; +constexpr auto AppVersion = 1009021; +constexpr auto AppVersionStr = "1.9.21"; +constexpr auto AppBetaVersion = false; constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION; diff --git a/Telegram/build/version b/Telegram/build/version index 02fc021df..eaf718e9a 100644 --- a/Telegram/build/version +++ b/Telegram/build/version @@ -1,7 +1,7 @@ -AppVersion 1009020 +AppVersion 1009021 AppVersionStrMajor 1.9 -AppVersionStrSmall 1.9.20 -AppVersionStr 1.9.20 -BetaChannel 1 +AppVersionStrSmall 1.9.21 +AppVersionStr 1.9.21 +BetaChannel 0 AlphaVersion 0 -AppVersionOriginal 1.9.20.beta +AppVersionOriginal 1.9.21 diff --git a/changelog.txt b/changelog.txt index 4ac9906fc..bbe824ae5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ +1.9.21 (16.03.20) + +- Mark new messages as read while scrolling down through them. +- Improved spellchecking on Windows 7 and Linux. + 1.9.20 beta (14.03.20) - Fix crash in shared links search.