John Preston
29224fea66
Improve design of mediaview controls over state.
2023-03-01 09:12:02 +04:00
John Preston
df9bd91d9a
Implement semi-native macOS title buttons for the viewer.
2023-03-01 09:12:02 +04:00
John Preston
d1230167bf
Improve title controls in Windows media viewer.
2023-03-01 09:12:02 +04:00
Ilya Fedin
808cf119b8
Switch freetype to experimental settings
2023-02-22 16:51:13 +04:00
Ilya Fedin
f71e7812e6
Don't hold GApplication
...
That's a much better way to avoid defunct event loop that will work in any edge case
Also don't assume GApplication is always running in Platform::Notifications::Enforced
2023-02-18 20:33:40 +04:00
John Preston
c09043f827
Fix build for macOS.
2023-02-18 15:10:14 +04:00
John Preston
832d47121f
Save media viewer position to Settings.
2023-02-18 15:10:13 +04:00
John Preston
27d446bdda
Improve Ctrl+W / Ctrl+M handling by media viewer.
2023-02-18 15:10:13 +04:00
John Preston
f9847090f9
Cmd+Q quit prevention in windowed media viewer.
2023-02-18 15:10:13 +04:00
John Preston
2a1e3c4453
Initial implementation of windowed media viewer on macOS.
2023-02-18 15:10:13 +04:00
Ilya Fedin
e78975d770
Fix event loop for non-first instance on Linux
2023-02-17 09:27:36 +04:00
Ilya Fedin
1940edd6ee
Fix deprecated declarations warnings on macOS
2023-02-14 18:37:01 +04:00
Ilya Fedin
96ef82272b
Use QT_DEPRECATED_WARNINGS_SINCE
2023-02-14 18:37:01 +04:00
John Preston
88e7f4b662
Improve the tabbed emoji panel design.
2023-02-02 22:12:31 +04:00
John Preston
ea4e2f0952
Fix build with Xcode.
2023-02-02 22:12:31 +04:00
John Preston
554f66f089
Support separate message type group restrictions.
2023-02-02 22:12:31 +04:00
John Preston
88f3aeca5b
Show just logo in Dwm Preview when passcoded.
2023-02-02 16:14:36 +04:00
Ilya Fedin
2be4641496
Install launcher on every launch on Linux
...
Just like AppUserModelId on Windows
This makes the cheat code and having the function outside of private namespace unnecessary
2023-01-23 12:16:59 +04:00
Ilya Fedin
b62e1d5036
Set prgname and application name before glibmm initialization
...
This ensures possible warnings use right process name
2023-01-22 15:11:02 +04:00
Ilya Fedin
6f89413c76
Don't get cursor position twice for open with menu
2023-01-20 12:58:48 +04:00
John Preston
507a064153
Fix OpenWith dropdown menu positioning on Windows.
2023-01-19 12:52:59 +04:00
John Preston
b80b770631
Fix input field shortcuts on macOS.
2023-01-19 10:36:43 +04:00
John Preston
cdfdccbb66
Detach SystemMediaControls from Window::Controller.
2023-01-19 09:46:20 +04:00
John Preston
b3667d69a1
Each MainWindow has its own Global Menu.
2023-01-19 09:46:19 +04:00
John Preston
e4c16ccba4
Create tray icon without a parent.
2023-01-19 09:46:19 +04:00
John Preston
7023b013ce
Initial support of separate windows for accounts.
2023-01-19 09:45:28 +04:00
Ilya Fedin
745b01a407
Another attempt to enable UTF-8 charset on Windows
2023-01-19 08:34:46 +04:00
Ilya Fedin
9b154b3c91
Ensure freedesktop capabilities aren't used when GNotification is used
2023-01-13 10:24:06 +04:00
Ilya Fedin
a1f9b5a96f
Get GApplication out of experimental settings
...
GApplication will always be used on Linux now. GNotification gets a toggle instead.
2023-01-12 21:49:16 +04:00
Ilya Fedin
9b7826ea0d
Get GApplication out of experimental settings
...
GApplication will always be used on Linux now. GNotification gets a toggle instead.
2023-01-12 21:30:45 +04:00
John Preston
39075538fb
Enable RoundPreferFloor HighDpi support on Windows.
...
Add an experimental setting for exact HighDPI on Windows.
2023-01-12 13:57:09 +04:00
John Preston
94a956ce19
Beta version 4.5.4: Fix build for Windows x64.
2023-01-10 16:47:57 +04:00
John Preston
fc26457218
Show current chat name in the window title.
2023-01-09 18:39:07 +04:00
John Preston
c49dac57b7
Don't use window title for IPC.
2023-01-09 16:08:34 +04:00
Ilya Fedin
c56977cbc1
Check autostart enabling success on Linux
2023-01-02 13:10:17 +04:00
John Preston
442d0da5c1
Force autostart folder creation.
...
Also show an error if autostart couldn't be enabled.
Fixes #25608 .
2023-01-02 12:26:20 +04:00
Ilya Fedin
1666683dbb
Fix various line length in notifications_manager_linux
2022-12-29 12:30:17 +04:00
Ilya Fedin
c134861cd9
Have notification subtitle in title on Linux when body-markup is not supported
...
This makes it look way better
2022-12-29 12:30:17 +04:00
Ilya Fedin
a3caecbc07
Fix build with clang
2022-12-29 09:32:07 +04:00
John Preston
faf6c48f25
Remove ui/special_buttons module.
2022-12-26 14:24:06 +04:00
Ilya Fedin
13eeddf479
Don't wait for input when there are fullscreen applications
2022-12-23 14:04:17 +04:00
Ilya Fedin
ecd217a79f
Implement autostart in snap
2022-12-20 18:55:29 +04:00
Ilya Fedin
4aa9c1fea3
Get saving desktop file out of group loop
2022-12-20 18:55:29 +04:00
Ilya Fedin
b3e547f4dd
Fix a warning in snap build
2022-12-16 11:03:37 +04:00
Ilya Fedin
3cb333d323
Fix counter paint when DPR != 1 in Linux tray
2022-12-09 16:04:07 +04:00
Ilya Fedin
2565b948d9
Cache system icon in Linux tray
2022-12-09 16:04:07 +04:00
Ilya Fedin
577f4b6271
Don't check com.canonical.Unity for the counter
...
It seems there's a race condition when Telegram is auto-started on Plasma and it doesn't hurt to issue the signal always, so just remove the check
2022-12-09 09:19:00 +04:00
Klemens Nanni
9c27271571
Use std::invoke_result_T not ::result_of to fix C++20 tdesktop 4.3.4
...
tdesktop defaults to (probably requires) C++20, but `std::result_of`[0]
was deprecated in C++17 and removed in C++20.
0: https://en.cppreference.com/w/cpp/types/result_of
2022-12-09 09:12:34 +04:00
Ilya Fedin
5990b0fabf
Fix build with Qt 5
2022-12-08 10:15:59 +04:00
Ilya Fedin
6f50906952
Don't use unneeded QEventLoop::ApplicationExec
2022-12-07 11:27:49 +04:00
John Preston
8937d732f6
Fix build with GCC.
2022-12-06 18:08:07 +04:00
23rd
e2205c7251
Fixed build on macOS.
2022-12-06 12:56:56 +03:00
John Preston
48148a8cc3
Revert "Provide the same sizes for tray icon as for main window icon"
...
This reverts commit f9bf68461d
.
2022-12-06 12:55:09 +04:00
John Preston
cb653df0f6
Support adaptive forum userpic rounding radius.
2022-12-05 16:18:10 +04:00
23rd
4fabb3f2a2
Replaced some qsl with u""_q literal.
2022-11-30 17:17:14 +03:00
John Preston
ad3f8e72a0
Remove namespace App.
2022-11-30 17:28:09 +04:00
John Preston
01139e1b04
Remove facades module.
2022-11-30 16:55:51 +04:00
John Preston
eaed91263e
Simplify HistoryHider, remove most of uses.
2022-11-30 16:13:31 +04:00
23rd
2acedca6b7
Replaced some qstr with u""_q literal.
2022-11-29 14:12:50 +03:00
Ilya Fedin
05524c3f6c
Don't show reply button in Linux native notifications when it's not supposed to
...
All modern notification daemons have support for the default action and it's a requirement with the portal spec
2022-11-28 21:55:00 +01:00
Ilya Fedin
b383dad6ac
Install launcher before registering URL scheme
2022-11-28 12:12:09 +01:00
Ilya Fedin
2bda3c4e2b
Don't save temp file for native notification userpics on Linux
2022-11-26 22:15:39 +01:00
Ilya Fedin
4484edd212
Get rid of unneeded QTextStream from GenerateDesktopFile
2022-11-26 17:26:52 +01:00
Ilya Fedin
ace363f432
Use GBytesIcon with GNotification
...
GFileIcon is not supported by xdg-desktop-portal
2022-11-26 17:26:52 +01:00
Ilya Fedin
d6ed23b3dd
Fix race condition between GApplication and GNotification
2022-11-26 17:26:52 +01:00
Ilya Fedin
9ee4ad95d0
Fix GApplication with some binary paths
2022-11-26 17:26:52 +01:00
Ilya Fedin
4ade80905f
Add proper build-time checks to AutostartSupported on Linux
2022-11-26 17:26:52 +01:00
Ilya Fedin
94b4809cdf
Get XDG activation token also from DESKTOP_STARTUP_ID
2022-11-25 15:11:25 +01:00
Ilya Fedin
109f6614f0
Unset XDG_ACTIVATION_TOKEN after used with GApplication
2022-11-25 15:11:25 +01:00
John Preston
8a288476b8
Implement pinned topics reordering.
2022-11-22 00:26:48 +00:00
Ilya Fedin
a94dd22caa
Rewrite GenerateDesktopFile using Glib::KeyFile and KShell
2022-11-21 21:30:17 +00:00
Ilya Fedin
899ab9a16a
Fix range loop warnings in Snap build
2022-11-21 21:30:17 +00:00
Ilya Fedin
2f0d14bd35
Use customWorkingDir() outside of Core::Launcher
...
This allows to add -workdir to shortcuts only if the process was launched with -workdir
2022-11-21 21:30:17 +00:00
Ilya Fedin
9b66b76bac
Use GNotification only in flatpak by default
...
The UX is not the best without sound, so there's no advantage in using GNotification on GNOME.
Remove mention about being native to GNOME as it's not true anymore.
2022-11-20 08:52:36 +00:00
Ilya Fedin
a1e60a3f20
Ensure GNotification is not autodetected in snap
...
Snap reports it as present, but prevents the access and GNotification attempts to use portal that doesn't work in snap
2022-11-19 02:21:51 +04:00
Ilya Fedin
768fc9b8f6
Use the new Glib::Variant qint64/quint64 compatibility with old code
2022-11-18 20:40:33 +04:00
Ilya Fedin
b9b6a9e747
Follow desktop file naming specification
...
This is required for GApplication to enable all the features
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#file-naming
2022-11-18 20:40:33 +04:00
Ilya Fedin
b4d310fd1e
Don't subscribe to inhibiton changes when not supported
2022-11-18 20:40:33 +04:00
Ilya Fedin
f9dd2b4a0a
Support GNotification
...
It's used if there's a gtk notification daemon or application is running sandboxed without access to the freedesktop protocol.
GNotification API is poor, but should feel native on environments using GNOME technologies.
2022-11-18 20:40:33 +04:00
Ilya Fedin
9726b3c298
Avoid race condition when registering Wayland interfaces
2022-11-11 11:47:01 +04:00
Ilya Fedin
f542a026ec
Add _GTK_APPLICATION_ID support
2022-11-07 18:16:49 +04:00
Ilya Fedin
fc4682d77e
Get rid of TDESKTOP_LAUNCHER_BASENAME
...
This key was mainly used to let flatpak and snap provide right desktop file name.
Now, we can compute it from the environment in runtime for both flatpak and snap.
There's no more need in this option. Desktop filename override by downstreams is highly discouraged.
2022-11-07 13:47:58 +04:00
Ilya Fedin
a507edb67a
Get rid of workarounds for old flatpak versions
...
The minimal supported flatpak version since Qt 6.x is 1.14.0.
Flatpak shares temp directory and runtime directory between launches since 1.11.1.
FLATPAK_ID is defined since 1.1.2.
2022-11-07 13:47:58 +04:00
Ilya Fedin
1336a7149b
Update glibmm to latest version
2022-11-03 14:45:01 +04:00
Ilya Fedin
ba9f5d138a
Use some APIs from newer glibmm
2022-11-02 21:02:46 +04:00
John Preston
fdf4129e5e
Fix build with GCC.
2022-11-02 08:51:03 +04:00
John Preston
1ac051a812
Implement forwarding to topics.
2022-11-01 19:25:44 +04:00
John Preston
602ba5bba9
Implement correct ForumTopic::canWrite logic.
2022-11-01 19:25:42 +04:00
23rd
fd2edb51e9
Fixed build in Xcode.
2022-11-01 19:25:41 +04:00
John Preston
4910a60499
Track mentions / reactions together with unread.
2022-11-01 19:25:40 +04:00
John Preston
d4255bbfe4
Fix build with Xcode.
2022-11-01 19:25:38 +04:00
John Preston
92a4b27e65
Support per-topic notification settings.
2022-11-01 19:25:37 +04:00
John Preston
5e82433693
Fix build with Xcode.
2022-11-01 19:25:35 +04:00
John Preston
1401b19994
Add PaintContext for Dialogs::Ui::RowPainter.
2022-11-01 19:25:34 +04:00
Ilya Fedin
f9bf68461d
Provide the same sizes for tray icon as for main window icon
2022-10-16 18:04:07 +04:00
Ilya Fedin
2d69329dc9
Set linux webview debug mode via D-Bus IPC
2022-10-03 09:29:25 +04:00
Ilya Fedin
2a6e2fa353
Bundle kcoreaddons
2022-09-28 23:59:59 +04:00
Ilya Fedin
f2d2826fc7
Make InstallLauncher accessible on any platform
2022-09-19 14:23:27 +04:00
Ilya Fedin
cfa12fb0cc
Move AppRuntimeDirectory to private namespace
2022-09-19 14:23:27 +04:00
Ilya Fedin
d9318c9935
Move icon name getter to cross-platform header
2022-09-19 14:23:27 +04:00
Ilya Fedin
5132fd5010
Use KSandbox to check flatpak/snap environment
2022-09-19 14:23:27 +04:00
Ilya Fedin
89879e355d
Replace EscapeShell with KShell::joinArgs
2022-09-19 14:20:02 +04:00
John Preston
7727cdff92
Fix build with Xcode.
2022-09-18 17:12:16 +04:00
Ilya Fedin
88f1f8ff22
Move QGuiApplication::setDesktopFileName call to Platform::start
...
It depends on Core::UpdaterDisabled that is not initialized in Launcher::initHook yet
2022-09-05 08:24:48 +04:00
Ilya Fedin
feb6107ce6
Qt 6.4 supports window activation with tray on Wayland
2022-09-02 21:27:41 +04:00
Ilya Fedin
38da0e086d
Get rid of lib_waylandshells
2022-09-02 21:27:41 +04:00
Ilya Fedin
f1092753fc
Remove version from the .desktop file
...
Some desktop environments hide the launcher if they don't know the version
2022-09-01 13:53:53 +04:00
Ilya Fedin
5fc7caeec9
Provide old version to Platform::NewVersionLaunched
2022-09-01 13:53:53 +04:00
Ilya Fedin
8c1bef929e
A better way of PiP aspect ratio handling on Wayland
2022-08-08 11:05:52 +04:00
Ilya Fedin
bf339de773
Always pass activation_token option
...
glib shows a warning about invalid GVariant and empty activation_token shouldn't hurt I believe
2022-08-04 17:12:07 +04:00
Ilya Fedin
9e63fc5acd
Let PiP have custom buffer size on Wayland
2022-08-04 16:41:25 +04:00
Ilya Fedin
d500714242
Use xdg-activation to open URLs&files
2022-08-03 15:26:08 +04:00
Ilya Fedin
66c9587650
Add fail callback to linux notifications exceptions handler
2022-07-31 12:21:24 +04:00
Ilya Fedin
8e8a209aad
Guard linux notification inhibition checks
2022-07-28 20:18:51 +04:00
Ilya Fedin
bb8ffcac3a
Default to Wayland on GNOME for new installs
2022-07-28 20:17:49 +04:00
John Preston
4cf4b6a368
Optimize emoji / stickers update requests.
2022-07-26 20:12:14 +03:00
John Preston
8383caa2b5
Fix build with Xcode.
2022-07-26 20:12:12 +03:00
Ilya Fedin
9b8dcec26e
Ensure notification manager is not null before first call to setManager in cross-platform code
2022-07-26 21:11:17 +04:00
Ilya Fedin
6718d238af
Switch to the dummy notification manager when notification daemon is not running on Linux
2022-07-26 21:11:17 +04:00
Ilya Fedin
dd70a6f659
IsQualifiedDaemon -> ByDefault
2022-07-26 21:11:17 +04:00
Ilya Fedin
ff2bd86744
Have a central place for catch-based logging of linux native notifications
2022-07-26 21:11:17 +04:00
Ilya Fedin
d2e3c01c11
Get linux notification inhibition state asynchronously
...
This is the last sync request in the D-Bus notifications
2022-07-26 21:11:17 +04:00
Ilya Fedin
e8477e5911
Get rid of 'paramtersCopy' in dbus code
2022-07-26 21:09:30 +04:00
23rd
57f769f358
Returned lost method that checks tray existence.
2022-06-23 09:38:21 +03:00
John Preston
1e63a6a1a7
Fix possible crash in Windows Toast Notifications.
2022-06-22 20:07:17 +04:00
John Preston
b963a68dd6
Fix windows taskbar notifications counter with multi-windows.
2022-06-20 12:56:50 +04:00
John Preston
0434e520fd
Don't quit on secondary window destroy by the system.
2022-06-15 19:59:16 +04:00
Ilya Fedin
798998203a
Get XDG activation token from native notification on Linux
2022-06-15 12:55:59 +04:00
Ilya Fedin
6ee08faa24
Migrate from kwayland to QtWaylandScanner
2022-06-14 16:36:44 +04:00
Ilya Fedin
391a3a77f6
Use Qt's xdg-desktop-portal file dialog implementation
2022-06-14 16:36:44 +04:00
Ilya Fedin
2477b35b42
Move tray availability logging to the appropriate class
2022-06-14 16:36:44 +04:00
Ilya Fedin
4d997a26b0
Don't update global menu on Linux without focus widget
...
The window loses focus when menu is open and edit options are deactivated
2022-06-14 16:36:44 +04:00
Ilya Fedin
4410aeb3eb
Make QMenuBar on Linux work without private API
2022-06-14 16:36:44 +04:00
Ilya Fedin
088cca7452
Adapt for XCB::IsSupportedByWM changes
2022-06-14 16:36:44 +04:00
John Preston
fc07954276
Improve premium section bottom.
2022-06-13 13:49:45 +04:00
23rd
7bf9db8644
Fixed logging out with opened non-primary windows.
2022-06-08 11:59:30 +03:00
John Preston
a780fbd09b
Add "ctrl-click-chat-new-window" option.
2022-06-07 22:05:37 +04:00
John Preston
6f285874f3
Fix build on macOS.
2022-05-19 17:27:01 +04:00
John Preston
5874ae7c51
Update API scheme on layer 142: Premium stickers.
2022-05-19 17:27:01 +04:00
Ilya Fedin
a2a401c0b0
Use public Qt API for native dialogs modality
2022-05-19 17:23:47 +04:00
Ilya Fedin
acd18a57fb
Get rid of the IBUS_USE_PORTAL workaround
...
It's been a while after the ibus breaking change, the new socket path should be in all major distros and this hack shouldn't be needed anymore.
2022-05-19 17:23:47 +04:00
Ilya Fedin
6a80b1b94c
Get rid of __HAIKU__ checks
...
This is a leftover of something that wasn't finiched and looks like won't be finished. It also feels that's not a good idea to mix Linux and Haiku in the same file though...
2022-05-19 17:23:47 +04:00
23rd
c47140c62d
Fixed window activation by clicking on tray icon for macOS.
2022-05-05 16:52:09 +03:00
John Preston
b28d5a63d1
Handle alert/confirm/prompt with custom dialog on Linux.
2022-05-03 23:30:42 +04:00
23rd
0e16a50bbc
Completely removed common and platform code for tray from main window.
2022-05-03 04:25:36 +03:00
23rd
9de372d715
Replaced macOS Qt tray with native implementation.
2022-05-03 04:25:36 +03:00
23rd
fbae5bdbcf
Removed macOS tray implementation from main window.
2022-05-03 04:25:36 +03:00
23rd
aee1ef78da
Moved out static job for Linux tray icon to separated class.
2022-05-03 04:25:36 +03:00
23rd
27c5c4b8f2
Removed Linux tray implementation from main window.
2022-05-03 04:25:36 +03:00
23rd
94e06c6846
Removed Windows tray implementation from main window.
2022-05-03 04:25:36 +03:00
23rd
7948d971e8
Added initial implementation of Linux tray.
2022-05-03 04:25:36 +03:00
23rd
70acc7a0e3
Added initial implementation of Windows tray.
2022-05-03 04:25:36 +03:00
23rd
56fdc7d39a
Added common and macOS tray implementations.
2022-05-03 04:25:36 +03:00
23rd
f67c3bbf65
Added placeholders for platform dependent implementations of tray.
2022-05-03 04:25:35 +03:00
23rd
de194c4aa2
Initialized empty files for tray implementations.
2022-05-03 04:25:35 +03:00
Sergey A. Osokin
3ba5b825e5
Fix -Wunused-const-variable warnings by removing unused variables
...
Fixes #24432
2022-04-26 21:25:05 +04:00
Hugo Osvaldo Barrera
c52a5927e5
Avoid a second query for the current color-scheme
...
Telegram listens for a signal that indicates when the color-scheme
changes. The signal itself includes the new value, but Telegram
currently queries for the value immediately after getting the signal.
This second round-trip is unnecessary, since the signal itself contains
the same information.
This changeset avoids this follow-up query, and drops the now-unused
`Setter`.
2022-04-25 22:38:08 +04:00
Ilya Fedin
cee593c423
Check whether notification image has alpha channel
2022-04-25 22:33:22 +04:00
John Preston
1bc8d6fb18
Fix non-working Qt-on-Windows bug workaround.
2022-04-25 14:03:43 +04:00
Ilya Fedin
62e82a42fb
Adapt to lib_base's XDP API changes
2022-04-14 09:15:50 +04:00
Ilya Fedin
80f1f079f1
Move waitForInterfaceAnnounce call to the uses of announced interfaces
2022-04-14 09:11:05 +04:00
Ilya Fedin
572eb1f5f8
Remove unneeded anymore xdg-open workaround for snap
2022-04-13 15:06:06 +04:00
Ilya Fedin
17fcc729a2
Implement org.freedesktop.appearance.color-scheme
2022-04-12 17:35:51 +04:00
Ilya Fedin
e5d8a1aa3c
Use QWidget::screen/QWidget::mask instead of QWindow ones
2022-03-23 09:42:51 +04:00
John Preston
e84bfe0420
Fix build for Windows Store.
2022-03-12 09:06:50 +04:00
John Preston
32d09f189b
Use rpl::empty instead of rpl::empty_value().
2022-03-11 09:56:29 +04:00
Ilya Fedin
6fd02ccbae
Match socket length check with Qt
2022-03-08 12:41:38 +04:00
23rd
0f00d90c29
Removed unused argument when pin animation in touchbar is cancelled.
2022-03-05 17:43:49 +03:00
Ilya Fedin
b39e4a3138
Do not call CloseNotification for activatable services
...
If the notification daemon is an activatable GApplication service (e.g.
on Mate), then the notification daemon may terminate a short time after
the notification has vanished (usually 15s). In that case the
notification daemon may reuse notification IDs, which is incompatible
with our notification clearing.
Also the service may not be running at all, when we call the
CloseNotification endpoint.
To fix this, we simply disable the entire notification history clearing
functionality on such desktops by proactively clearing all notification
references from our internal notification manager.
Signed-off-by: Magnus Groß <magnus.gross@rwth-aachen.de>
2022-03-05 16:51:02 +04:00
Magnus Groß
4dd14b81e1
Do not remove notification reference on NotificationClosed
...
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
2022-03-05 16:51:02 +04:00
Ilya Fedin
daaa654065
Get rid of unneeded MainWindow::Private class on Linux
2022-03-05 16:47:38 +04:00
Ilya Fedin
8db567ba7a
Don't hold a dbus connection unecessarily in main window
2022-03-05 16:47:38 +04:00
Ilya Fedin
805e6de1dc
Add global menu event hook on Linux just like on macOS
2022-03-05 16:47:38 +04:00
Ilya Fedin
ffbafcb5fb
Get rid of Q_OBJECT in macOS MainWindow
2022-03-05 16:47:38 +04:00
Ilya Fedin
1c8d4ee7ab
Get rid of Q_OBJECT in HistoryInner
2022-03-05 16:47:38 +04:00
23rd
5718789d53
Replaced Ui::InformBox and Ui::ConfirmBox with GenericBox.
2022-02-28 09:08:01 +03:00
Ilya Fedin
99e8d22c51
Move xdg-foreign support to lib_base
2022-02-04 16:31:40 +03:00
Ilya Fedin
7f0bdc5d36
Fix desktop environment list deduplication
2022-02-02 09:23:14 +03:00
Ilya Fedin
e5981ed22b
Move jemalloc initialization code to cmake_helpers
2022-02-01 14:41:54 +03:00
John Preston
ca21b7efae
Allow disable Cmd+Q warning on macOS.
2022-02-01 00:43:20 +03:00
John Preston
6207770120
Paint unread mention badge as an icon.
2022-01-28 19:10:07 +03:00
John Preston
28f2c213f7
Remove app module. Support delayed quit by Cmd+Q on macOS.
2022-01-27 15:54:20 +03:00
Ilya Fedin
ceb323ac7c
Use QMenuBar instead of own global menu implementation on Linux
...
This is another attempt of 79f96480c2
2022-01-22 21:18:37 +04:00
Ilya Fedin
b65d40a22b
Get rid of custom SNI implementation
...
XDG is inventing new tray specification, so SNI will be outdated soon and it's better to just use QSystemTrayIcon.
I believe all the major drawbacks of QSystemTrayIcon are solved and we can live with minor ones.
Given the planned MainWindow refactoring, it seems it's the best time to do that.
2022-01-22 21:18:37 +04:00
John Preston
3ff17a8789
Refactor image transformation interfaces.
2022-01-21 15:33:44 +03:00
John Preston
1f194da2f0
Improve macOS title bar font and rounding.
2022-01-17 16:48:32 +03:00
Ilya Fedin
30810e95f4
Log when DE is unknown
2022-01-08 10:59:47 +03:00
Ilya Fedin
a3d84f69ea
fixup! Use more sources for DE detection
2022-01-08 10:45:13 +03:00
Ilya Fedin
b3bb1a537c
Use more sources for DE detection
2022-01-08 09:55:34 +03:00
Ilya Fedin
726aa3316d
Rework DE detection
...
Variables can point to a mixed environment, make DE detection non-exclusive.
Remove unused methods.
2022-01-07 19:14:59 +03:00
John Preston
ba6c3eaf73
Add dummy Platform::Integration on Linux.
2022-01-06 15:44:02 +03:00
John Preston
3f0fed19d8
Fix build for macOS.
2022-01-06 15:41:17 +03:00
John Preston
18e6e2da9e
Open specific chat only in one window.
2022-01-04 19:36:33 +03:00
John Preston
8b0725650d
Move global event filter to Platform::Integration on Windows.
2022-01-04 15:29:40 +03:00
John Preston
3cb89339c8
Version 3.4.2: Fix build for Mac App Store.
2021-12-31 23:40:36 +03:00
Klemens Nanni
078a2af385
Fix -Wunused-const-variable warnings under DESKTOP_APP_DISABLE_DBUS_INTEGRATION
...
OpenBSD builds without dbus integration (for now); this fixes the warnings.
Those variables have been introduced in multiple commits.
2021-12-29 20:16:04 +03:00
John Preston
e7e34d50ba
Fix building on Windows.
2021-12-14 16:27:57 +04:00
Ilya Fedin
48ab88a9ca
Don't use QPlatformNativeInterface for native window handle on Windows
2021-12-13 14:24:34 +04:00
Ilya Fedin
33b7ac209e
Don't use QPlatformNativeInterface-based XCB::GetRootWindowFromQt
2021-12-13 14:24:34 +04:00
John Preston
01c2be3f01
Add some checks for actions in a locked state.
2021-12-07 10:01:56 +04:00
Ilya Fedin
8592326a3c
Revert "Use kernel accelerated sendfile to copy files on Linux"
...
This reverts commit 34534a9653
.
2021-12-02 09:15:23 +04:00
Ilya Fedin
2ad20d6c4a
Instantiate a local dbus server for webview IPC
2021-11-29 16:23:51 +04:00
Ilya Fedin
8fda1169e5
Get rid of Platform::MainWindow::psLinux*
2021-11-26 18:28:37 +04:00
Ilya Fedin
53305f5f46
Fix paste check in Linux global menu
2021-11-26 18:28:37 +04:00
23rd
0eee937e6d
Moved ChatRestrictionsInfo and ChatAdminRightsInfo to separated file.
2021-11-26 18:00:21 +04:00
John Preston
773755d70e
Send as a channel in HistoryWidget.
2021-11-26 18:00:18 +04:00
Ilya Fedin
22b37c4bf8
Use webkitgtk without its headers
2021-11-06 16:33:39 +04:00
John Preston
1ea6224e60
Fix autostart toggling.
2021-11-05 10:15:41 +04:00
John Preston
f10ed4b9bc
Support autostart in Windows Store version.
...
Fixes #3234 .
2021-11-04 12:36:28 +04:00
John Preston
3743dd0161
Fix small window icon counter.
...
Regression was introduced in aef45b3a1d
.
2021-11-03 16:14:20 +04:00
John Preston
aef45b3a1d
Refactor icon unread counter painting.
2021-11-02 20:12:57 +04:00
John Preston
dab3bce8ba
Fix crash on macOS before the app starts.
2021-11-02 00:07:22 +04:00
John Preston
f204b9fca0
RegisterBundledResources only on macOS.
2021-10-29 17:42:57 +04:00
23rd
93ae5e71f7
Guarded timers for online processing in touchbar's PinnedDialogButton.
2021-10-29 16:10:07 +04:00
Ilya Fedin
c50a5db277
Restore dbusmenu-qt dependent functionality with Qt 6
2021-10-24 20:01:55 +04:00
John Preston
389ea2af83
Fix compilation error on Linux.
2021-10-22 18:34:59 +04:00
John Preston
4cf9bf18e9
Fix clearing of macOS native notifications.
2021-10-21 23:37:14 +04:00
John Preston
d361f5c6b0
Hide native notifications of deleted messages.
2021-10-21 23:01:13 +04:00
John Preston
f7085b40b1
Support building macOS version with Qt 6.2.
2021-10-21 19:49:48 +04:00
Ilya Fedin
847c01d605
Add Qt 6 support
...
Tested only on Linux so far
2021-10-21 13:15:00 +04:00
23rd
80461bd9fe
Moved ConfirmBox to Ui namespace.
2021-10-19 06:34:27 +03:00
23rd
6148edbc7d
Moved ConfirmBox to td_ui.
2021-10-19 06:34:27 +03:00
John Preston
8cca75da5c
Handle foreign instance in COM toast activator.
2021-10-08 13:46:52 +04:00
John Preston
8d0ff1b61d
Try setting current window as foreground on activate.
2021-10-08 12:20:24 +04:00
John Preston
dd856b9e4a
Use real QWindow for taskbar icon hider.
...
Fixes #17081 .
2021-10-08 12:19:41 +04:00
John Preston
352768053d
Beta version 3.1.6: Fix build on Linux.
2021-10-06 21:07:18 +04:00
John Preston
5cd0a3719e
Beta version 3.1.6: Detach FastReply from MarkAsRead.
2021-10-06 19:24:30 +04:00
John Preston
8b7cd4a0c7
Beta version 3.1.6: Fix crash on old Windows 10 versions.
2021-10-06 17:36:30 +04:00
John Preston
e7cf560da0
Handle toast activations by COM activator.
2021-10-06 11:02:57 +04:00
John Preston
86e07518ad
Fix clearing notifications from Action Center.
...
Regression was introduced in 997913be25
.
2021-10-05 16:53:36 +04:00
John Preston
8c71d03959
Add reply from Windows native notifications.
2021-10-05 16:52:46 +04:00
John Preston
967e86f4ab
Rewrite Windows native notifications using C++/WinRT.
2021-10-05 12:09:15 +04:00
John Preston
5136cc3c9c
Rename Dialogs::Layout to Dialogs::Ui.
2021-10-04 23:45:21 +04:00
John Preston
b78b27f517
Move dialogs_layout to dialogs/ui/.
2021-10-04 23:45:21 +04:00
Ilya Fedin
c2212c719e
Inform Qt about taskbar hider
...
This allows the feature to work without patching Qt
2021-10-04 23:23:50 +04:00
23rd
21f7cec781
Fixed build for macOS.
2021-09-30 21:21:07 +04:00
23rd
64af456d29
Fixed build for macOS.
2021-09-30 21:16:45 +04:00
Ilya Fedin
d2a41a42e0
Move applicationDidFinishLaunching code to init
...
This should make the Qt patch catching the event unneeded
2021-09-29 09:04:23 +04:00
John Preston
844fd58a97
Support Windows 11 rounded corners and themeable title bar.
2021-09-28 21:11:35 +04:00
John Preston
19ce1edc16
Use base::SafeRound instead of std::round.
...
Previous assertion violations because of NaN from std::round were
in video streaming, see commits 27d58ba07b
, 8f5830d520
.
Now the crashes happened in the ConvertScale() call from a background
thread when preparing an image from clipboard for sending to a chat.
2021-09-27 12:13:57 +04:00
John Preston
8759ca4577
Rewrite bingmaps check to C++/WinRT.
2021-09-26 17:17:57 +04:00
Hermesis
d5c6d9a231
Open map in browser if default "bingmaps:" handler is not found
2021-09-26 17:16:38 +04:00
Gleb Smirnoff
59f2f750b4
On FreeBSD the system malloc is jemalloc and non-portable
...
extensions are enabled including malloc_np.h.
2021-09-15 23:24:39 +03:00
John Preston
8069fdd873
Use base/random.h instead of openssl::RandomValue.
2021-09-15 13:42:22 +03:00
Ilya Fedin
e92ae40ecb
Implement close to taskbar option
2021-09-13 17:46:53 +03:00
Ilya Fedin
3fbd68cff9
Don't link glib with DESKTOP_APP_DISABLE_DBUS_INTEGRATION
2021-09-12 00:12:13 +03:00
Gleb Smirnoff
720f238cf8
Close a race between Gio threads and Qt application init.
...
QApplication has a historical feature[1] of calling setlocale(3) at init,
which today cause more harm than good. Such call isn't thread safe neither
per C standard, not per any known libc implementation. The Gio threads
would call into locale reading functions all the time, so early access to
locale by Gio may race with setlocale() by Qt leading to undefined behavior.
Platform specific start before the Sandbox (aka QApplication) is at core
design of tdesktop and that order can't be changed. There is no way to pause
Gio until QApplication instantiates.
Fortunately, Qt library itself has a static global flag that prevents it
from calling setlocale() twice. We don't even need to instantiate a
temporary QCoreApplication, we can just call into the method. So call
it form Platform::start before any existing or future calls to Gio.
Fixes #16922
[1] https://chat.stackoverflow.com/rooms/63812/discussion-between-phil-armstrong-and-matteo-italia
2021-09-10 13:18:20 +03:00
23rd
900a7d0b2b
Appended references to const auto types in loop to prevent copying.
...
Suggested by Apple Clang.
2021-09-09 16:32:04 +03:00
Ilya Fedin
45360adbc2
Remove unneeded libraries from snapcraft.yaml
2021-09-07 23:40:08 +03:00
Ilya Fedin
05d4d58f8b
Replace GTK integration with xsettings + XDP
2021-09-06 15:43:28 +03:00