summarylogtreecommitdiffstats
path: root/0002-qt5-wayland-desktop-entry-fix.patch
blob: c1f6912526eb797f133861715df21f75c6320a98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
diff --git a/Telegram/SourceFiles/platform/linux/integration_linux.cpp b/Telegram/SourceFiles/platform/linux/integration_linux.cpp
index f13a96bce..a469268ec 100644
--- a/Telegram/SourceFiles/platform/linux/integration_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/integration_linux.cpp
@@ -80,7 +80,7 @@ public:
 
 Application::Application()
 : Gio::impl::ApplicationImpl(this) {
-	const auto appId = QGuiApplication::desktopFileName().toStdString();
+	const auto appId = QGuiApplication::desktopFileName().chopped(8).toStdString();
 	if (Gio::Application::id_is_valid(appId)) {
 		set_application_id(appId);
 	}
diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp
index f6d48b3da..7fa9c7ab2 100644
--- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp
@@ -118,7 +118,9 @@ void XCBSetDesktopFileName(QWindow *window) {
 		base::Platform::XCB::GetAtom(connection, "_KDE_NET_WM_DESKTOP_FILE"),
 	};
 
-	const auto filename = QGuiApplication::desktopFileName().toUtf8();
+	const auto filename = QGuiApplication::desktopFileName()
+		.chopped(8)
+		.toUtf8();
 
 	for (const auto atom : filenameAtoms) {
 		if (atom.has_value()) {
@@ -242,8 +244,7 @@ void MainWindow::updateUnityCounter() {
 
 	const auto launcherUrl = Glib::ustring(
 		"application://"
-			+ QGuiApplication::desktopFileName().toStdString()
-			+ ".desktop");
+			+ QGuiApplication::desktopFileName().chopped(8).toStdString());
 	const auto counterSlice = std::min(Core::App().unreadBadge(), 9999);
 	std::map<Glib::ustring, Glib::VariantBase> dbusUnityProperties;
 
diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
index 7448d690e..839914734 100644
--- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
@@ -591,8 +591,8 @@ bool NotificationData::init(
 
 	_hints["category"] = Glib::create_variant(Glib::ustring("im.received"));
 
-	_hints["desktop-entry"] = Glib::create_variant(
-		Glib::ustring(QGuiApplication::desktopFileName().toStdString()));
+	_hints["desktop-entry"] = Glib::Variant<Glib::ustring>::create(
+		QGuiApplication::desktopFileName().chopped(8).toStdString());
 
 	_notificationClosedSignalId = _dbusConnection->signal_subscribe(
 		signalEmitted,
diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp
index 620b146e2..9d1a21d42 100644
--- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp
@@ -189,9 +189,7 @@ bool GenerateDesktopFile(
 	if (!QDir(targetPath).exists()) QDir().mkpath(targetPath);
 
 	const auto sourceFile = u":/misc/org.telegram.desktop.desktop"_q;
-	const auto targetFile = targetPath
-		+ QGuiApplication::desktopFileName()
-		+ u".desktop"_q;
+	const auto targetFile = targetPath + QGuiApplication::desktopFileName();
 
 	const auto sourceText = [&] {
 		QFile source(sourceFile);
@@ -336,7 +334,7 @@ bool GenerateServiceFile(bool silent = false) {
 		QStandardPaths::GenericDataLocation) + u"/dbus-1/services/"_q;
 
 	const auto targetFile = targetPath
-		+ QGuiApplication::desktopFileName()
+		+ QGuiApplication::desktopFileName().chopped(8)
 		+ u".service"_q;
 
 	DEBUG_LOG(("App Info: placing D-Bus service file to %1").arg(targetPath));
@@ -348,7 +346,7 @@ bool GenerateServiceFile(bool silent = false) {
 	target->set_string(
 		group,
 		"Name",
-		QGuiApplication::desktopFileName().toStdString());
+		QGuiApplication::desktopFileName().chopped(8).toStdString());
 
 	QStringList exec;
 	exec.append(executable);
@@ -481,9 +479,7 @@ void AutostartToggle(bool enabled, Fn<void(bool)> done) {
 
 		if (!enabled) {
 			return QFile::remove(
-				autostart
-					+ QGuiApplication::desktopFileName()
-					+ u".desktop"_q);
+				autostart + QGuiApplication::desktopFileName());
 		}
 
 		return GenerateDesktopFile(
@@ -585,13 +581,14 @@ void start() {
 
 	QGuiApplication::setDesktopFileName([&] {
 		if (KSandbox::isFlatpak()) {
-			return qEnvironmentVariable("FLATPAK_ID");
+			return qEnvironmentVariable("FLATPAK_ID") + u".desktop"_q;
 		}
 
 		if (KSandbox::isSnap()) {
 			return qEnvironmentVariable("SNAP_INSTANCE_NAME")
 				+ '_'
-				+ cExeName();
+				+ cExeName()
+				+ u".desktop"_q;
 		}
 
 		if (!Core::UpdaterDisabled()) {
@@ -606,13 +603,14 @@ void start() {
 					md5Hash.data());
 			}
 
-			return u"org.telegram.desktop._%1"_q.arg(md5Hash.constData());
+			return u"org.telegram.desktop._%1.desktop"_q.arg(
+				md5Hash.constData());
 		}
 
-		return u"org.telegram.desktop"_q;
+		return u"org.telegram.desktop.desktop"_q;
 	}());
 
-	LOG(("App ID: %1").arg(QGuiApplication::desktopFileName()));
+	LOG(("Launcher filename: %1").arg(QGuiApplication::desktopFileName()));
 
 	if (!qEnvironmentVariableIsSet("XDG_ACTIVATION_TOKEN")
 		&& qEnvironmentVariableIsSet("DESKTOP_STARTUP_ID")) {