Commit Graph

270 Commits

Author SHA1 Message Date
Ilya Fedin c8ce5dfa8b Fix escaping in scheme creation on Linux and set -workdir 2020-11-16 12:33:22 +03:00
Ilya Fedin e64f6f7266 Since changing the ibus portal check, it is not compatible with snap anymore 2020-11-12 18:12:17 +03:00
Ilya Fedin 21133abe13 Fix 30s hang in case ibus portal couldn't be started 2020-11-12 15:51:00 +03:00
Ilya Fedin 3a45957ceb Set parent window ID for portal autostart dialog 2020-11-09 11:19:03 +03:00
Ilya Fedin 876c57dcfb Fix getting FileChooser portal version 2020-11-09 11:19:03 +03:00
Ilya Fedin f980cade39 Use static QFile methods in linux platform code 2020-11-09 11:19:03 +03:00
Ilya Fedin 3d18d28dc5 Use kIconName on icon creating 2020-11-09 11:19:03 +03:00
Ilya Fedin e04598835b Move _monitorRect and _monitorLastGot to psDesktopRect method 2020-11-09 11:19:03 +03:00
John Preston 74d2313784 Build Linux version with Qt 5.15.1 in CentOS 7 docker. 2020-11-06 11:21:34 +03:00
Ilya Fedin f7dcf6ce81 Hide IsXDGDesktopPortalPresent in a private namespace 2020-11-06 11:20:47 +03:00
Ilya Fedin 6c023084d9 Move the excluding portal checks to UseXDGDesktopPortal 2020-11-06 11:20:47 +03:00
Ilya Fedin f521275acc Fix AreQtPluginsBundled to include static binary 2020-11-06 09:57:47 +03:00
Ilya Fedin 2b39da483b Fix IBus portal service name 2020-11-05 14:38:41 +03:00
Ilya Fedin d9711f8ebd QDir::tempPath already has fallback to /tmp 2020-11-05 14:38:25 +03:00
Ilya Fedin 204a08df14 Add a cheat code to install launcher on Linux 2020-11-02 10:17:24 +03:00
Ilya Fedin 03c2fc2c48 Use ibus portal whenever it present 2020-11-01 18:28:52 +03:00
Ilya Fedin d73d3cd43d Implement ShowWindowMenu for XCB 2020-10-30 11:29:02 +03:00
Ilya Fedin 8f5b136003 Implement possibility to hide taskbar icon on Linux 2020-10-30 11:27:42 +03:00
Ilya Fedin a38b4f039a Use some methods from lib_base 2020-10-30 10:52:49 +03:00
Ilya Fedin 152f1ef17f Use Core::UpdaterDisabled where a check is for installed or not 2020-10-28 09:57:10 +03:00
Ilya Fedin f749647567 Check Qt version in runtime in CanOpenDirectoryWithPortal
It is not guaranteed that app is running with the same Qt version that was compiled
2020-10-26 14:58:06 +03:00
Ilya Fedin 77e1b9f156 Change socket path length condition to >=
Looks like 108 is the length including \0, therefore actual limit is 107
2020-10-24 09:10:16 +03:00
Ilya Fedin ca67ac913f Check for KDE portal backend when using portals on KDE 2020-10-23 11:28:18 +03:00
Ilya Fedin 0179a2ca10 Rename InstallMainDesktopFile to InstallLauncher 2020-10-23 11:25:18 +03:00
Ilya Fedin f58874572d Check actual socket path length rather than InSnap/InFlatpak 2020-10-23 11:25:18 +03:00
Ilya Fedin 2aa0b674cd Use new XCB methods from lib_base 2020-10-16 16:12:38 +03:00
Ilya Fedin 093fcc3821 Subscribe to StatusNotifierHostRegistered signal 2020-10-07 13:06:06 +03:00
Ilya Fedin 6f89598a7b Clean old attempts to register url scheme on scheme registration 2020-10-07 12:55:34 +03:00
Ilya Fedin 638ea3111f Fallback to D-Bus methods if XCB-based LastUserInputTime failed 2020-10-05 10:10:40 +03:00
Ilya Fedin a0af748fc5 Update SNI state even if tray is deactivated 2020-10-02 19:19:16 +03:00
John Preston f3a2460a54 Version 2.4.1: Fix build for Linux. 2020-10-01 20:06:00 +03:00
Ilya Fedin 1d24d29afa Little cleanup for Linux platform code & build
CheckCXXSourceCompiles is not needed anymore

Material wayland decorations could be checked just with IsQtPluginsBundled
2020-10-01 16:34:01 +03:00
Ilya Fedin 0536a479f9 Use startSystemMove/startSystemResize instead of platform code on Wayland with Qt 5.15 2020-10-01 16:30:53 +03:00
Ilya Fedin 7fef7e6315 Don't add shadow on Wayland
It was implemented like a hack and worked like a hack... Looks like it is better to wait until Qt give a way to create shadows.
2020-10-01 16:30:53 +03:00
Ilya Fedin 10012d6b31 Handle launcher basename compile-time for snap
Just like for flatpak
2020-10-01 10:54:42 +03:00
Ilya Fedin 6805085bbc Use unique desktop file name for static binary 2020-09-29 18:54:01 +03:00
Ilya Fedin 70c993774a Get rid of redudant cmake options 2020-09-29 18:24:16 +03:00
Ilya Fedin 242ced4022 Write icon theme names to debug log 2020-09-20 16:51:01 +03:00
Ilya Fedin 6635d03818 Check if xcb-screensaver extension present 2020-08-30 17:00:43 +04:00
Ilya Fedin c77f1bf082 Add UnsetWindowExtents method 2020-08-30 17:00:43 +04:00
Ilya Fedin ea8e256a23 Revert "Revert "Add main window shadow for Linux""
This reverts commit b7f5cfe083.
2020-08-30 17:00:43 +04:00
Ilya Fedin 2f2de84b43 Fix d-bus type in MutterDBusLastUserInputTime 2020-08-30 16:57:51 +04:00
John Preston b7f5cfe083 Revert "Add main window shadow for Linux"
This reverts commit d02092f09e.

Conflicts:
	Telegram/SourceFiles/mainwindow.cpp
	Telegram/SourceFiles/platform/linux/specific_linux.cpp
	Telegram/SourceFiles/window/main_window.cpp
2020-08-23 16:38:49 +04:00
Ilya Fedin 6dfefa3f21 g_message is a more appropriate log level for some messages 2020-08-18 08:16:17 +04:00
Ilya Fedin eaae7b1d03 Decrease indentation in XCBLastUserInputTime 2020-08-18 08:16:17 +04:00
Ilya Fedin d02092f09e Add main window shadow for Linux 2020-08-18 08:16:17 +04:00
Ilya Fedin 1dcbb103a8 Move gtk clibpboard to linux_libs 2020-08-15 17:43:28 +04:00
Ilya Fedin 47673bba50 Move cExeName checks 2020-08-15 17:43:28 +04:00
Ilya Fedin 580e6baee6 Get rid of redudant fontconfig hack 2020-08-15 17:43:28 +04:00
Ilya Fedin f56af090e0 Use GAppInfo instead of xdg-mime
This makes registering custom scheme distribution-compatible
2020-08-15 17:43:28 +04:00
Ilya Fedin 95c0c400c7 Use QProcess instead of system()
Use g_get_home_dir since it already uses both $HOME and passwd
2020-08-15 17:43:28 +04:00
Ilya Fedin 170ec16f39 Remove outdated snap autostart hack 2020-08-15 17:43:28 +04:00
Ilya Fedin 786bedf271 Disable Qt's integration mechanism on GTK-based DE to avoid early GTK loading
This also removes TDESKTOP_USE_GTK_FILE_DIALOG since it doesn't forces GTK dialog for anyone and there is no reason to leave it

TDESKTOP_DISABLE_GTK_INTEGRATION can be also tested via action now
2020-08-15 17:43:28 +04:00
Ilya Fedin 1de1747c38 Fix length of some lines in specific_linux and main_window_linux 2020-08-15 17:43:28 +04:00
Ilya Fedin 5dad293335 Add warnings about some build options and environment variables 2020-08-15 17:43:28 +04:00
Ilya Fedin dc9d0aae54 Add support for showing window menu on Wayland 2020-08-11 10:56:29 +04:00
Ilya Fedin 252bdd2353 TDESKTOP_DISABLE_DBUS_INTEGRATION -> DESKTOP_APP_DISABLE_DBUS_INTEGRATION 2020-08-11 10:55:50 +04:00
Ilya Fedin 2b89700f66 libwayland headers are needed only with Qt < 5.13 2020-07-23 14:29:56 +04:00
Ilya Fedin 841908fe31 Read decoration layout property from gtk 2020-07-23 14:29:56 +04:00
John Preston 8c4e8212cd Add 'respect system dark mode' checkbox. 2020-07-22 17:18:17 +04:00
Ilya Fedin 47a237c924 Implement system-based dark mode for Windows and Linux 2020-07-22 10:32:56 +04:00
Ilya Fedin a6fe5c08ad Add a method to get flatpak ID 2020-07-13 06:53:45 +04:00
Ilya Fedin 256e976167 Hide ProcessNameByPID and RealExecutablePath into a private namespace 2020-07-13 06:53:45 +04:00
Ilya Fedin b587328fed Add support for custom titlebar on Linux with Qt < 5.15 2020-07-12 23:19:05 +04:00
Ilya Fedin 2fd5771c3d Add support for org.gnome.Mutter.IdleMonitor 2020-07-12 22:19:44 +04:00
Ilya Fedin 59b521d666 Implement xcb-based LastUserInputTime method 2020-07-12 22:19:44 +04:00
Ilya Fedin dd76d54aeb Fix build with TDESKTOP_DISABLE_GTK_INTEGRATION 2020-06-30 22:13:36 +04:00
Ilya Fedin 4922768086 Don't use QLibrary for glib 2020-06-29 16:27:45 +04:00
Ilya Fedin 806f2e0b50 Check for all needed gtk functions for gtk clipboard 2020-06-29 16:27:45 +04:00
23rd e318a7d65f Simplified ranges::find_if with ranges::any_of and ranges::none_of. 2020-06-23 21:53:43 +04:00
Ilya Fedin 9a65481e9d Unset QT_STYLE_OVERRIDE instead of forcing Fusion
To don't break styling on KDE
2020-06-23 21:23:47 +04:00
Ilya Fedin 3a91003eea Use gtk clipboard when available to avoid https://bugreports.qt.io/browse/QTBUG-56595 2020-06-17 20:34:47 +04:00
Ilya Fedin e009ac026d Update snap to core20 2020-06-09 19:01:35 +04:00
Ilya Fedin ab13d9bdaf Skip empty parts in QT_QPA_PLATFORMTHEME 2020-06-03 11:31:34 +04:00
Ilya Fedin 0165e31ca7 Never use custom code for portal detecting in flatpak 2020-06-03 11:31:34 +04:00
Ilya Fedin c776f81dc7 Add support for choosing directories via xdg-desktop-portal 2020-06-03 11:31:34 +04:00
Ilya Fedin e098922a4b Add Platform::AutostartSupported 2020-06-01 18:25:21 +04:00
Ilya Fedin 10b169f9f6 Make not supported errors static 2020-06-01 18:19:34 +04:00
Ilya Fedin c83b8d4043 Fix naming of static variables 2020-06-01 18:19:34 +04:00
Ilya Fedin 1fc2b19c94 Add Cinnamon sound settings command 2020-06-01 18:19:34 +04:00
Ilya Fedin fb97940cac Rename SandboxAutostart to PortalAutostart 2020-06-01 18:19:34 +04:00
Ilya Fedin 16c38b54e2 Rename InSandbox to InFlatpak 2020-06-01 18:19:34 +04:00
Ilya Fedin 7f29f57c3d Use custom gtk file dialog only on gtk-based DEs 2020-06-01 18:19:34 +04:00
Ilya Fedin 47d7bd95ae Add a method to check if gtk integration is forced 2020-06-01 18:19:34 +04:00
Ilya Fedin 1504136828 Don't spam logs if there are no dbus 2020-05-26 07:24:18 +04:00
Ilya Fedin 4c1f83daca Add a check for bundled Qt plugins 2020-05-24 10:57:37 +04:00
Ilya Fedin d1d1f83881 Remove outdated LIBGL_ALWAYS_INDIRECT hack 2020-05-08 12:54:21 +04:00
Ilya Fedin 161e51757c Change color of wayland decoration according to theme 2020-05-01 12:26:10 +04:00
Ilya Fedin 7f890122e6 Add methods to detect appimage, static binary and forced gtk dialog 2020-04-26 12:28:34 +04:00
Ilya Fedin 7bc86cc9af Fix directory opening with portal and use them by default with KDE 2020-04-24 14:33:26 +04:00
Ilya Fedin ed91c07f99 Restore the old behavior with fallback fontconfig configuration
With current code fallback works only through time and replaces the config even if it is changed by the user.

This commit fixes that.
2020-04-13 10:49:30 +04:00
John Preston 0d58f1c9fa Try system font config once in snap build. 2020-03-30 12:18:50 +04:00
Ilya Fedin aa4968faaa Re-use fontconfig fallback code in snap 2020-03-29 14:14:56 +04:00
Ilya Fedin d47e94ea4d Fallback to launcher basename if FLATPAK_ID variable is empty 2020-03-16 13:04:52 +04:00
Ilya Fedin 99a8c93ac1 Fix build with gcc 9 2020-03-16 13:00:16 +04:00
Ilya Fedin ba5d9eda2d Minimize dbus requests 2020-03-11 11:43:14 +04:00
Ilya Fedin 5927e8272c Convert TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION to runtime environment variable 2020-03-09 11:02:45 +04:00
Ilya Fedin 7202ffca76 Remove unneeded TrayIconFileTemplate function
Use /.flatpak-info instead of deprecated /run/user/$UID/flatpak-info

Improve indentation in UseXDGDesktopPortal and IsAppIndicator

Remove unneeded NeedTrayIconFile and rename IsAppIndicator to IsIndicatorApplication

Include only needed part of QtDBus in main_window_linux.cpp

Remove usage of QDBusInterface from SandboxAutostart and IsSNIAvailable

Don't check dbus activatable services in IsIndicatorApplication

Move XEmbed menu initialization to initTrayMenuHook, tray availability check to initHook

Don't create unneeded file for tooltip icon, since indicator-application doesn't support tooltips

Passthrough counter from updateIconCounters

Suppress log errors for LastUserInputTime on GNOME

Set applcation name and icon name for pulseaudio
2020-03-06 18:28:56 +04:00
Ilya Fedin 5c89dfad85 Implement LastUserInputTime on Linux
This is a dbus implementation, ideally a X11 implementation should be added as a fallback to get it work on non-mainstream DEs (and WMs)
2020-03-03 18:39:31 +04:00
Ilya Fedin 7bd0598555 Unified function to detect icon name on Linux 2020-02-27 15:17:32 +04:00
Ilya Fedin 8b704f9bd7 Fix escaping in linux launcher creating 2020-02-27 11:51:28 +04:00
John Preston 3b327d9397 Fix launching with data in ~/.TelegramDesktop
Regression was introduced in 60612635ef.

Fixes #7289.
2020-02-26 20:13:40 +04:00
Ilya Fedin 5bdc0db9e2 Generalize backward compatibility of linux launcher 2020-02-21 18:12:48 +04:00
Ilya Fedin ca1623f34a Use XDG Desktop Portal only when variable is set 2020-02-21 18:11:24 +04:00
Ilya Fedin 3574a9c874 Fix lost qgetenv in GetLauncherBasename 2020-02-11 13:14:22 +04:00
Ilya Fedin e62f727135 Fix creating of autostart launcher in snap 2020-02-10 19:30:41 +04:00
Ilya Fedin 77719750ee Fix name of the snap desktop file
Use new switch for GSL
2020-02-10 15:34:03 +04:00
Ilya Fedin 3b4dfa1381 Use LXQt's StatusNotifierItem implementation instead of appindicator 2020-02-05 18:38:34 +04:00
John Preston 28a567986d Try linking some libs dynamically on Linux. 2020-01-31 16:33:35 +03:00
Ilya Fedin 0477bda929 Use XDG Desktop Portal for file dialog 2020-01-31 16:02:11 +03:00
Ilya Fedin d80b3fda7d Fix duplicate object path in SandboxAutostart and add some logging 2020-01-31 15:47:44 +03:00
Ilya Fedin a831c1703a Split launcher filename detection to a function 2020-01-31 15:46:39 +03:00
John Preston 74d848311b Replace str_const with base::const_string. 2020-01-29 12:47:50 +03:00
Ilya Fedin 9536a3c98e Use packaged build in the snap package 2020-01-28 20:38:12 +03:00
Ilya Fedin 05eabfd539 Add autostart support for linux 2020-01-28 16:44:27 +03:00
Ilya Fedin 04cfd598e2 Use appindicator in flatpak and fix desktop environment detection, add pavucontrol-qt 2020-01-24 16:51:50 +03:00
Ilya Fedin ffe037f9f1 Fix single instance socket path for compatibility with flatpak 2020-01-23 09:58:12 +03:00
Ilya Fedin 0bcc4befa1 Change fc-custom.conf condition to DESKTOP_APP_USE_PACKAGED 2020-01-17 17:49:07 +03:00
John Preston 4eeac7dc18 Fix whitespace and indentation errors.
See #6672, thanks Sea-n.
2020-01-02 14:25:53 +03:00
ilya-fedin 3d36b4f866 Replace libnotify with QtDBus notification implementation (#6825) 2019-12-29 18:41:45 +03:00
John Preston 849deb57e2 Move many widget classes to lib_ui. 2019-10-01 23:59:46 +03:00
John Preston 12a020cd09 Beta version 1.8.5: Fix build for Linux. 2019-09-08 23:38:45 +03:00
John Preston 6343221d7b Remove many includes from stdafx.pch. 2019-09-06 19:31:07 +03:00
John Preston 7d585ab72f Handle located groups as public. 2019-06-21 14:27:46 +02:00
John Preston 1225c9194a Fix window title on Windows 7.
Regression was introduced in dd68c7e90.

Fixes #6106.
2019-06-07 14:46:07 +03:00
John Preston 9c613fe2f7 Move system versions to platform/platform_info. 2019-06-04 14:23:14 +03:00
23rd 9059b2e617 Fixes for Audio Player in touchbar.
- Removed unused Platform::SetTouchBar.
 - Added rpl::event_stream in Media Player Instance for handle closing player.
 - Fixed hiding of touchbar when last track is ended.
 - Fixed display of time when last track is ended.
 - Slightly refactored.
2019-05-27 15:34:58 +02:00
23rd 58604406f8 Added initial implementation touchbar. 2019-05-27 15:34:54 +02:00
John Preston f1b0b60340 Fix possible crash in MainWindow destructor. 2019-03-24 12:12:41 +04:00
John Preston 0df628dc7a Fix notifications hiding on Linux.
Regression was introduced in 3372dfcd3e.

Only when platform-specific code can give us the global time of the
last user input event we rely on idle time for notifications hiding.

Fixes #5791.
2019-03-14 21:59:10 +04:00
23rd 3372dfcd3e Refactored checking of last input while notifications are displayed.
- Removed condition for Windows platform only.
 - Added smooth hiding of notifications in case video is watched or voice message is recorded.
 - psUserActionDone() was completely replaced with Core::App().updateNonIdle().
2019-03-10 22:02:58 +04:00
23rd 78d00bcf22 Refactored counting idle time.
- psIdleTime() was replaced with Platform::LastUserInputTime().
 - _lastTimeVideoPlayedAt was moved to Application as _lastNonIdleTime.
 - Call of updateNonIdle() was added while voice is recording.
 - Fixed #5695.
 - Thanks Preston. =)
2019-03-10 22:02:58 +04:00
John Preston fe618bd652 Use crl::time/now instead of TimeMs/getms. 2019-02-19 11:06:33 +04:00
John Preston 646d15b257 Add LSFileQuarantineEnabled to the .plist 2019-01-29 14:52:33 +03:00
John Preston a70e72f75d Application->Sandbox, Messenger->Application. 2019-01-23 12:51:58 +04:00
John Preston 65430d92ea Refactor calls settings panel. 2019-01-11 17:30:57 +04:00
Gregory K 11b991cddc Add call settings (#5540) 2019-01-05 15:08:02 +04:00
John Preston d1be4c6d96 Fix crash with event loop nesting. 2018-12-25 14:11:10 +04:00
John Preston de4a477686 Mark event loop nesting more carefully.
Fixes #5506. I hope fixes #5508.
2018-12-23 16:08:48 +04:00
John Preston 3f58c930e3 Use separate download folder for support. 2018-11-22 17:15:52 +04:00
Vitaly Zaitsev 31e3a426a6 Refactored FallbackFontConfig() to use native Qt methods.
Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
2018-11-16 20:09:33 +04:00
John Preston 997d1fbc80 Move custom fonts.conf to resources. 2018-11-12 17:34:47 +04:00
John Preston 8ee958bfa0 Force custom bundled fonts.conf if fontconfig is new.
If system fontconfig version is 2.13 or above use custom FONTCONFIG_FILE.
Fixes #4493, fixes #4240.
2018-11-12 15:26:36 +04:00
Kirill Romanov 496c361bdc Gnome notification fix (#5215)
* Set notification desktop entry hint

* Set X-GNOME-UsesNotifications flag
2018-11-08 14:58:04 +04:00
Marco Trevisan (Treviño) dcb748c544 destkop: add keywords stanza
They are used by mayor desktops to search through apps.

Remove this modification from snapcraft
2018-11-06 09:50:59 +04:00
John Preston 6db4972208 Fix blurry App Switcher icon on macOS.
Fixes #5267.
2018-11-04 15:51:38 +04:00
John Preston a429e22b93 Beta version 1.4.4: Add some checks. 2018-10-17 09:25:24 +03:00
Grishka 44eac2bf07 Added support for platform-specific microphone permission in calls 2018-10-17 08:53:23 +03:00
John Preston 6e566e0165 Swap 'alpha' and 'beta'. Happy debugging! 2018-09-26 21:23:08 +03:00
Henning Schild 5292d75617 Linux: disable RegisterCustomScheme when internal updater is disabled
Closes: https://github.com/telegramdesktop/tdesktop/issues/5118
Signed-off-by: Henning Schild <henning@hennsch.de>
2018-09-01 10:12:09 +03:00