Commit Graph

699 Commits

Author SHA1 Message Date
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
Ilya Fedin
33b7ac209e Don't use QPlatformNativeInterface-based XCB::GetRootWindowFromQt 2021-12-13 14:24:34 +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
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
aef45b3a1d Refactor icon unread counter painting. 2021-11-02 20:12:57 +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
d361f5c6b0 Hide native notifications of deleted messages. 2021-10-21 23:01:13 +04:00
Ilya Fedin
847c01d605 Add Qt 6 support
Tested only on Linux so far
2021-10-21 13:15:00 +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
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
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
Ilya Fedin
6192413f0b Split webview initialization from GtkIntegration class 2021-08-25 12:52:43 +03:00
Ilya Fedin
51df482571 Get rid of gtk open with dialog
Portal open with dialog works just fine and is a more universal solution... That allows to get rid of an additional process.
2021-08-25 12:52:43 +03:00
Ilya Fedin
e7d39e6046 Get rid of GtkIntegration::initializeSettings use 2021-08-13 15:21:19 +03:00
Ilya Fedin
63a92cb90a Log icon theme 2021-08-13 15:21:19 +03:00
Ilya Fedin
414456d003 Revert "Use gtk clipboard when available to avoid https://bugreports.qt.io/browse/QTBUG-56595"
Fixed in Qt by https://codereview.qt-project.org/c/qt/qtbase/+/306771

This reverts commit 3a91003eea.
2021-08-12 08:51:10 +03:00
Ilya Fedin
8b7b0fa570 Remove -externalupdater flag
Having a path to executable in /etc/tdesktop/externalupdater is a way more convenient and is enough
2021-08-11 18:20:52 +03:00
Ilya Fedin
ac86f3e5bd Use Communications category for tray icon
Since tdesktop fits it
2021-08-10 15:42:21 +03:00
Ilya Fedin
d986e70a89 Fix global menu on 64-bit systems with X11
When Wayland support for global menu was added (0b86feeeb5), X11 support was broken since QWindow::winId returns WId what is a quintptr that expands to uint32 on 32-bit and to uint64 on 64-bit, while AppMenu d-bus service accepts only uint32.
2021-07-28 23:41:36 +03:00
Ilya Fedin
1ebf27bfa1 Switch MainWindow to Ui::RpWindow 2021-07-28 18:05:39 +03:00
John Preston
245909e381 Beta version 2.8.12: Prune icon cache on Linux. 2021-07-23 19:39:31 +03:00
Ilya Fedin
087fbe89ce Add additional checks to NotificationData::setImage 2021-07-19 22:56:38 +03:00
Ilya Fedin
dc81f9eeaf Remove SetWatchingMediaKeys
Since SPMediaKeyTap has been removed on Mac, Linux is the only platform where this function is implemented, but that's not really needed due to MPRIS support, so SetWatchingMediaKeys can be dropped entirely
2021-07-19 22:56:14 +03:00
Ilya Fedin
49fed41dfa Use RegisterUrlScheme from lib_base 2021-07-19 22:55:57 +03:00
Ilya Fedin
9b1d967967 Move NotificationServiceWatcher to notifications manager 2021-07-19 22:39:38 +03:00
Ilya Fedin
6f151f20e9 Add support for DESKTOP_APP_DISABLE_WEBKITGTK
Co-authored-by: mid-kid <esteve.varela@gmail.com>
2021-07-19 22:31:27 +03:00
Ilya Fedin
ae70dfb1f4 Return after throwing access denied error 2021-07-19 22:31:27 +03:00
Ilya Fedin
ba9b72e038 Fix -Wunused-variable warnings with gcc 2021-07-19 22:31:27 +03:00
Ilya Fedin
79cc797aff Fix -Wunused-variable warnings 2021-07-13 21:43:34 +03:00
Ilya Fedin
b6881022ce Allow to build with -Werror and clang
Fixes -Wdeprecated-enum-enum-conversion, -Wdeprecated-declarations, -Wrange-loop-construct, -Winconsistent-missing-override
2021-07-13 21:32:06 +03:00
Ilya Fedin
8ecc98eb03 Right file dialog freeze fix
The freezing is still happening if the service is not accessible
2021-07-12 11:10:16 +03:00
Ilya Fedin
62fd968409 Don't call gtk_selection_data_get_length on nullptr 2021-07-08 22:09:26 +03:00
Ilya Fedin
2c6e4eed19 Use unique_ptr for GtkSelectionData 2021-07-08 22:09:26 +03:00
23rd
9dfb43d525 Fixed build for macOS and Linux. 2021-07-08 20:18:40 +03:00
Ilya Fedin
3b07785f87 Optimize pasting with gtk 2021-07-08 18:58:40 +03:00
Ilya Fedin
ee773a28bb Fix 30s freeze after pasting 2021-07-07 16:40:09 +03:00
Ilya Fedin
17cee8ec56 Set service name for lib_base and lib_webview gtk integration 2021-07-07 12:16:01 +03:00
23rd
a631a28092 Removed App::pixmapFromImageInPlace. 2021-07-06 12:13:06 +03:00
Ilya Fedin
6f031a715e Revert "Use QMenuBar instead of own global menu implementation on Linux"
This reverts commit 79f96480c2.
2021-07-05 21:01:20 +03:00
Ilya Fedin
75ff7a6637 Control GtkOpenWithDialog lifetime from outside 2021-07-04 20:05:53 +03:00
Ilya Fedin
22d23c8be1 Add missed signalId check 2021-07-02 20:11:28 +03:00
Ilya Fedin
b335741f99 Use gsl::finally to pop thread context where appropriate 2021-07-02 20:11:28 +03:00
Ilya Fedin
1261c775d4 Fix freeze after creating file dialog 2021-07-02 15:51:58 +03:00
Ilya Fedin
551ea7d879 Move GTK integration out of process with D-Bus 2021-07-02 00:59:36 +03:00
Ilya Fedin
47e32bebe4 Remove not really needed gtk scale factor query 2021-07-01 22:13:50 +03:00
Ilya Fedin
0b21c04489 Remove the copy of gtk file dialog 2021-07-01 22:13:50 +03:00
Ilya Fedin
85f013ebdb Revert "Avoid removing portal platformtheme plugin in snap"
This reverts commit 12db51fe75.
2021-07-01 22:13:50 +03:00
Ilya Fedin
d42fb6d1b9 Switch from mallocng to jemalloc
Now it's known how to make it free the memory in an expected manner and it's better maintained
2021-07-01 22:13:20 +03:00
Ilya Fedin
8d75078a42 Use Glib::MainLoop instead of QEventLoop in glib code 2021-06-29 15:10:08 +03:00
Ilya Fedin
c3fb392906 Clean dbus-specific code in main_window_linux.h 2021-06-29 10:30:48 +03:00
Ilya Fedin
a59bfdb2f8 Fix handleNativeSurfaceChanged when dbus integration is disabled 2021-06-29 10:30:48 +03:00
Ilya Fedin
79f96480c2 Use QMenuBar instead of own global menu implementation on Linux 2021-06-29 10:30:48 +03:00
Ilya Fedin
5c8f08fc92 Move preview support from QGtkDialog to GtkFileDialog 2021-06-24 11:26:24 +04:00
Ilya Fedin
00a0b2c8b6 Get rid of GTK cast templates 2021-06-24 11:26:24 +04:00
Ilya Fedin
007218cc13 Use C++ wrappers in GtkOpenWithDialog 2021-06-24 11:26:24 +04:00
Ilya Fedin
8afe495a4f Avoid using g_unix_fd_list_new_from_array 2021-06-24 11:26:24 +04:00
Ilya Fedin
257f2086d1 Get rid of gtk2 header compatibility 2021-06-24 11:26:24 +04:00
Ilya Fedin
f011c84ce8 Make Linux file dialog API better 2021-06-24 11:26:24 +04:00
Ilya Fedin
a55b41faa1 Provide a list of shell integrations in QT_WAYLAND_SHELL_INTEGRATION 2021-06-20 10:39:42 +04:00
Ilya Fedin
a26d769304 Set QT_WAYLAND_SHELL_INTEGRATION to custom value 2021-06-19 08:16:38 +04:00
23rd
b422ec025e Removed Ui::show from classes that have pointer to Controller. 2021-06-17 10:57:45 +04:00
23rd
707b36dc12 Moved DBIWorkMode to Core::Settings. 2021-06-16 09:31:32 +03:00
23rd
5334372671 Moved WorkMode global variable from facades to core settings. 2021-06-16 09:31:32 +03:00
mid-kid
37f59095f4 Fix building with LINK_TO_GTK 2021-06-12 15:08:11 +04:00
23rd
32e47c24b4 Moved Linux MPRIS support to lib_base. 2021-06-10 23:00:56 +03:00
Ilya Fedin
b964c681f8 Get system dark mode state asynchronously on Linux 2021-05-31 20:31:24 +03:00
Ilya Fedin
c6dcc57c5e Set _KDE_NET_WM_DESKTOP_FILE on X11 2021-05-31 20:30:51 +03:00
23rd
690fbe83fd Unified and moved to single place generating of song name from SongData. 2021-05-31 08:54:22 +04:00
Ilya Fedin
e0d6faf45b Fix build with LTO 2021-05-19 12:26:07 +03:00
John Preston
fbe4e3f0ec Fix build with mallocng. 2021-05-17 13:38:28 +04:00
Ilya Fedin
837485974a Use mallocng on Linux 2021-05-17 10:35:18 +03:00
Ilya Fedin
3cf739eca9 Use event filter to get surface expose event 2021-05-17 10:00:01 +03:00
Ilya Fedin
cfee688feb Replace call_delayed with InvokeQueued in MainWindow::handleVisibleChanged 2021-05-17 10:00:01 +03:00
Ilya Fedin
30d8894c30 Use nodiscard in WaylandIntegration 2021-05-17 10:00:01 +03:00
Ilya Fedin
0b86feeeb5 Implement appmenu on Wayland with org_kde_kwin_appmenu protocol 2021-05-17 10:00:01 +03:00
Ilya Fedin
434ef34378 Implement taskbar icon hidding on Wayland with org_kde_plasma_shell protocol 2021-05-17 10:00:01 +03:00
Ilya Fedin
166c28c215 Get rid of default_delete 2021-05-17 10:00:01 +03:00
Ilya Fedin
17c514e851 Use surface as XdgExporter parent 2021-05-17 10:00:01 +03:00
John Preston
383acf0ffc Fix crash in native notifications on Linux. 2021-05-12 12:10:55 +04:00
Ilya Fedin
680a9a7ca7 Implement parent setting for portal and gtk dialogs on Wayland via xdg-foreign-v2 2021-05-11 10:53:32 +03:00
Ilya Fedin
95b4435396 Resubscribe to signal when running with old xdg-desktop-portal 2021-05-07 18:32:02 +03:00
John Preston
b1c4524612 Fix crash dump generation on Linux. 2021-05-03 17:34:33 +04:00
Ilya Fedin
9a857659ce Check action type before launching new version 2021-05-03 14:53:21 +03:00
Ilya Fedin
68dc00be27 Move weak_ptr include to .cpp in linux notifications 2021-05-03 14:39:24 +03:00
Ilya Fedin
ee00f12131 Launch new version directly in write-protected mode 2021-05-03 14:39:24 +03:00
John Preston
7444f17c4e Use sendfile only on Linux. 2021-05-03 14:59:24 +04:00
Ilya Fedin
578833446d Add support for write-protected update on Linux 2021-05-03 12:54:08 +03:00
John Preston
98180d3a9e Always guard and send on_main in native notifications. 2021-05-03 13:08:50 +04:00