mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 23:27:09 +02:00
No description
In general we need to keep a reference to the notification id, so that we can delete the notification later from history - unless the NotificationClosed reason was that the user actively dismissed it, in which case it is not kept in history anyway (so we can dismiss our reference too). -- Background -- Some desktop environments such as KDE keep a history of notifications. An API is provided to delete notifications from that history by calling the org.freedesktop.Notifications.CloseNotification endpoint with the ID of that notification. If the notification was already closed (timed out), then this will delete the notification from history. The intent is to clear these notifications from the notification history as soon as a chat with notifications originating from that person is opened, as the user is then not interested anymore in those notifications and to prevent unnecessary clutter in the history widget. It is also cleared when the chat is read on another device. -- Problem -- Telegram already has all the code in place to support this functionality, but unfortunately this did not work on Linux before, because we listen to the NotificationClosed signal and remove our reference to the notification id from our internal manager as soon as we get that signal. This means that we do not clear that notification from history once we open the chat with that person (unless we open the chat before the notification has timed out, i.e. if we didn't get the NotificationClosed signal). -- Fix -- To fix this, we keep our notification reference (if the notification was not dismissed by the user), which means that our reference will be kept around until we open the chat with that person (or close Telegram entirely). Since all the needed functionality for deleting notifications was already in place, this patch is quite short as we only need to keep the reference around longer than we did before this patch. Note also that code is already in place to clear notifications for messages that were read on another device: History::inboxRead() calls Core::App().notifications().clearIncomingFromHistory() Fixes #17111 |
||
---|---|---|
.github | ||
cmake@f05023bb10 | ||
docs | ||
lib/xdg | ||
snap | ||
Telegram | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
changelog.txt | ||
CMakeLists.txt | ||
LEGAL | ||
LICENSE | ||
README.md |
Telegram Desktop – Official Messenger
This is the complete source code and the build instructions for the alpha version of the official desktop client for the Telegram messenger, based on the Telegram API and the MTProto secure protocol.
The source code is published under GPLv3 with OpenSSL exception, the license is available here.
Supported systems
The latest version is available for
- Windows 7 and above (64 bit) (portable)
- Windows 7 and above (32 bit) (portable)
- macOS 10.12 and above
- Linux static build for 64 bit
- Snap
- Flatpak
Old system versions
Version 2.4.4 was the last that supports older systems
Version 1.8.15 was the last that supports older systems
Third-party
- Qt 6 (LGPL) and Qt 5.15.2 (LGPL) slightly patched
- OpenSSL 1.1.1 and 1.0.1 (OpenSSL License)
- WebRTC (New BSD License)
- zlib 1.2.11 (zlib License)
- LZMA SDK 9.20 (public domain)
- liblzma (public domain)
- Google Breakpad (License)
- Google Crashpad (Apache License 2.0)
- GYP (BSD License)
- Ninja (Apache License 2.0)
- OpenAL Soft (LGPL)
- Opus codec (BSD License)
- FFmpeg (LGPL)
- Guideline Support Library (MIT License)
- Range-v3 (Boost License)
- Open Sans font (Apache License 2.0)
- Vazir font (SIL Open Font License 1.1)
- Emoji alpha codes (MIT License)
- Catch test framework (Boost License)
- xxHash (BSD License)
- QR Code generator (MIT License)
- CMake (New BSD License)
- Hunspell (LGPL)
Build instructions
- Windows (32-bit) (64-bit)
- macOS
- GNU/Linux using Docker