Telegram is a single-instance app; attempting to open a second instance
fails and simply focuses the existing instance. However the app's
.desktop file does not indicate this to Linux desktop shells like GNOME
and KDE Plasma, causing them to show a "Start new instance/Open new
window" action for the app that will not work when used.
This commit fixes that by setting `X-GNOME-SingleWindow=true` in the
desktop file. This is a GNOME-specific key, but it is honored in KDE
Plasma too.
- Switch between contacts list sorting modes.
- Sort contacts list by last seen time by default.
- Fix disappearing Send As Channel button after message editing.
- Fix file upload cancelling.
- Fix crash in video capture on macOS.
- Fix labels in the About box.
- Use Qt 6.2.2 for macOS and Linux builds.
- Allow installing x64 Windows version on Windows ARM.
On X11 we need to keep the QDrag around a little longer.
Right now, drag is scoped local to launchDrag() and will be destroyed
immediately when launchDrag() finishes. However for X11 we must keep the
drag object alive a little longer. It may only be destroyed once the
drag operation has been accepted by another window, otherwise drag and
drop is broken on Linux and no action happens when something is dragged
from Telegram into another window.
This is because there is still communication happening in the XDND
protocol once QDrag::exec() finishes. See the documentation for
reference: https://freedesktop.org/wiki/Specifications/XDND/Fixes#17291
This option was invented when single instance check wasn't adapted for -workdir. Now, -workdir can work without -many and this option is redudant, but auto-update prevention is helpful. Let's autodetect whether the binary is already running with a lock file.