Commit graph

844 commits

Author SHA1 Message Date
Ilya Fedin
e8a1fc0300 Add a method to check whether to run in background instead of checking for macOS 2023-09-12 10:27:13 +04:00
Ilya Fedin
566f2dd670 Switch XDP open with dialog to QWaylandWindow::requestXdgActivationToken 2023-09-11 11:12:08 +04:00
Ilya Fedin
e52e1672e8 Make PortalAutostart asynchronous 2023-09-11 11:11:40 +04:00
Ilya Fedin
bf255c0e00 Don't use crl::on_main unnecessarily in Linux native notifications code
All those dbus methods call callbacks on the same thread
2023-09-11 11:11:04 +04:00
Ilya Fedin
55fb3405e5 Move feature warnings to the relevant code 2023-09-11 11:05:05 +04:00
Ilya Fedin
483909854a Use brackets include for QtWaylandScanner-generated headers 2023-09-08 07:28:13 +04:00
Ilya Fedin
0079a18e97 Call D-Bus ReloadConfig asynchronously 2023-09-04 18:11:25 +04:00
23rd
98bb520f47 Adjusted code for refactor of input fields in lib_ui. 2023-09-04 17:36:54 +04:00
Ilya Fedin
4807244682 Don't use crl::on_main unnecessarily with XDP::SettingWatcher
g_dbus_connection_signal_subscribe calls the callback on the same thread
2023-09-04 16:21:58 +04:00
Ilya Fedin
396635fa1d Make use of the new window-less base::Platform::XDP::ParentWindowID 2023-08-25 10:21:25 +02:00
Ilya Fedin
4755be4ace Add missing returns to skip taskbar Linux abstraction 2023-08-24 11:44:06 +02:00
Ilya Fedin
07bbfd1353 Make dark mode update go through Qt code on Linux
This makes the behavior consistent and is possible now thanks to a Qt patch
2023-08-18 17:09:21 +02:00
Ilya Fedin
12eed5f433 Get optional string support in cppgir 2023-08-10 19:33:01 +04:00
Ilya Fedin
c2e96db358 Fix a typo in the LinuxIntegration event dispatcher warning 2023-08-06 21:20:10 +04:00
Ilya Fedin
1cad1966f7 Try to instantiate GApplication instance without nested event loop 2023-08-06 21:20:10 +04:00
Ilya Fedin
8669e6a891 Port GApplication to cppgir 2023-08-06 21:20:10 +04:00
Ilya Fedin
0e3e0c5b81 Do a D-Bus request instead of systemctl command for D-Bus config reload 2023-08-03 18:14:17 +04:00
Ilya Fedin
da55698a51 Generate GUID for GNotification
That's what g_application_send_notification does when ID is not passed and that simplifies the code
2023-08-03 18:12:55 +04:00
Ilya Fedin
cf781e1043 Port AppLaunchContext to cppgir 2023-08-03 18:11:31 +04:00
John Preston
8ec0bdcac9 Version 4.8.10: Fix build with GCC. 2023-07-28 21:46:41 +04:00
Ilya Fedin
272d2da04a Stabilize app id on Linux when -workdir is set to the default workdir
Currently the app id hash is generated from workdir path only when it's set explicitly and that's for a good reason: the default workdir could be changed (e.g. by creating a TelegramForcePortable) and app id would change what would result in a duplicate .desktop created.

The current code has the possibility of having duplicate .desktop files, too, as it happened, but by specifying -workdir to the same directory as the default one.

There's now a check that ensures the specified workdir is really custom so those duplicate launchers could be removed what should really stabilize the hash.
2023-07-24 10:37:38 +04:00
Ilya Fedin
30c73fbdf2 Fix D-Bus service with non-standard workdir or backslash in the path
Working dir not set leads to unrelevant instance being launched with unrelevant bus name and entire launchf fails.

D-Bus service files also don't need backslash escaping unlike the .desktop files.
2023-07-21 17:53:24 +04:00
Ilya Fedin
3cb49127f4 Make a weak pointer for GApplication startup lambda
Or it never gets destroyed
2023-07-21 06:48:57 +04:00
Ilya Fedin
9ccb11bd1a Avoid using const_string for constant consumed by std::string 2023-07-20 21:39:06 +04:00
Ilya Fedin
f817df9d7f Use new glibmm 2.78 API 2023-07-20 17:58:07 +04:00
Ilya Fedin
0534a2fb62 Fix QGuiApplication::desktopFileName usage
The Qt documentation says:
This is the file name, without the full path or the trailing ".desktop" extension of the desktop entry that represents this application according to the freedesktop desktop entry specification.

Qt 6.5.2 also automatically fixes it breaking all the current tdesktop and desktop-app usage expecting the file extension.
2023-07-19 23:51:50 +04:00
Ilya Fedin
2dfe858327 Support D-Bus activation 2023-07-01 21:05:42 +04:00
Ilya Fedin
0421e41c47 Check actual executable path instead of cExeName in GenerateDesktopFile 2023-07-01 21:05:42 +04:00
Ilya Fedin
a3cdf19c1f Ensure Wayland integration instance accessor doesn't leak 2023-06-17 15:13:31 +04:00
Ilya Fedin
1d234ea990 Use argv0 for shortcuts when updater is disabled 2023-06-16 11:38:54 +04:00
Ilya Fedin
8aee08eaef Track argv0 through relaunches 2023-06-16 11:38:54 +04:00
Ilya Fedin
074c725c6c Move Platform::ThirdParty::start content to LinuxIntegration 2023-06-13 12:19:21 +04:00
Ilya Fedin
af00247362 Provide access to un-joined argument list in Core::Launcher
This allows to re-use the variable in Linux-specific code
2023-06-13 12:19:21 +04:00
Ilya Fedin
a7bd097b2f Have a global Core::Launcher accessor
This allows to use Launcher in code executing before Sandbox is created
2023-06-13 12:19:21 +04:00
Ilya Fedin
71570f5be1 Store managed objects inside managers 2023-05-30 20:55:15 +04:00
Ilya Fedin
8c38d31950 C++ify wl_registry 2023-05-30 20:55:15 +04:00
Ilya Fedin
2ce9e610fa Update icons when icon theme on Linux changes 2023-05-29 11:07:19 +04:00
Ilya Fedin
6aef6d7f4e Integrate GApplication with QFileOpenEvent and Core::Application::activate 2023-05-29 10:51:40 +04:00
Ilya Fedin
54841de991 Use new base_linux_wayland_utilities 2023-05-25 22:05:13 +04:00
Ilya Fedin
fc66a0eea8 Destroy Wayland integration before Wayland disconnection 2023-05-25 22:05:13 +04:00
John Preston
f46f655a0e Revert "Disable xcb_xlib"
This reverts commit d1ff6e583d.

Otherwise HIME input is broken:
https://github.com/telegramdesktop/tdesktop/issues/26228
2023-05-24 18:11:36 +04:00
Ilya Fedin
9514b0d1f1 Get rid of unneeded gi::result wrap 2023-05-19 15:33:43 +04:00
Ilya Fedin
2ea50f5c85 Constify options in Linux screen locker monitor
That's possible now thanks to cppgir update
2023-05-19 15:33:43 +04:00
Ilya Fedin
d1455f5117 Switch Wayland integration to the new type safe Qt API
This also makes object lifetime tracking better thanks to the new API
2023-05-15 12:34:56 +04:00
Ilya Fedin
0ffaff2d8b Support Qt 6.5 dark mode API 2023-05-15 12:33:30 +04:00
Ilya Fedin
2675b5df3b Use QGuiApplication::setBadgeNumber API since Qt 6.6 on Linux 2023-05-15 10:20:18 +04:00
Ilya Fedin
db60bee7dc Implement screen locker monitor on Linux 2023-05-15 09:51:13 +04:00
Ilya Fedin
0b4ebcbae4 Warn if incompatible event loop is detected 2023-05-15 08:08:04 +04:00
Ilya Fedin
0a011db483 Get rid of DESKTOP_APP_DISABLE_DBUS_INTEGRATION
Desktop App Toolkit uses GLib as the D-Bus library for quite long time, but GLib is not only a D-Bus library, it's more a basic library providing native Linux APIs implementing various specs. The situation right now is that DESKTOP_APP_DISABLE_DBUS_INTEGRATION disables not only D-Bus code but all the native API integration such as MIME handling or .desktop file parsing. In other words, the option disables native Linux APIs on Linux what is absurd and doesn't have any sense.
2023-05-15 08:08:04 +04:00
Ilya Fedin
8dee2a1c8b Set device pixel ratio for counter layer 2023-04-04 10:07:51 +04:00