43 lines
1.9 KiB
Diff
43 lines
1.9 KiB
Diff
From f65b9f2df5bf913f8c152ea770795d2cdcb14c6a Mon Sep 17 00:00:00 2001
|
||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||
Date: Tue, 7 Jan 2025 19:09:01 +0100
|
||
Subject: [PATCH] desktop-icons: Fix '%k' in .desktop files
|
||
|
||
In order to support Link-type .desktop files, we load the file
|
||
ourselves, and then create the AppInfo from the loaded keyfile
|
||
to avoid reading the file twice.
|
||
|
||
Unfortunately that means that the AppInfo loses the filename
|
||
information, which is necessary to substitute the '%k' macro.
|
||
|
||
In order to support both the macro and Link-type .desktop files,
|
||
we have to take the hit and let GIO read the file again.
|
||
---
|
||
extensions/desktop-icons/fileItem.js | 5 +++--
|
||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||
|
||
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
|
||
index 1c9a1e55..c765967b 100644
|
||
--- a/extensions/desktop-icons/fileItem.js
|
||
+++ b/extensions/desktop-icons/fileItem.js
|
||
@@ -241,13 +241,14 @@ var FileItem = class {
|
||
if (this._isDesktopFile) {
|
||
try {
|
||
const keyFile = new GLib.KeyFile();
|
||
- keyFile.load_from_file(this._file.get_path(), GLib.KeyFileFlags.NONE);
|
||
+ const path = this._file.get_path();
|
||
+ keyFile.load_from_file(path, GLib.KeyFileFlags.NONE);
|
||
|
||
const type = keyFile.get_string(
|
||
GLib.KEY_FILE_DESKTOP_GROUP, GLib.KEY_FILE_DESKTOP_KEY_TYPE);
|
||
switch (type) {
|
||
case GLib.KEY_FILE_DESKTOP_TYPE_APPLICATION:
|
||
- this._desktopFile = Gio.DesktopAppInfo.new_from_keyfile(keyFile);
|
||
+ this._desktopFile = Gio.DesktopAppInfo.new_from_filename(path);
|
||
if (!this._desktopFile) {
|
||
log(`Couldn’t parse ${this._displayName} as a desktop file, will treat it as a regular file.`);
|
||
this._isValidDesktopFile = false;
|
||
--
|
||
2.47.1
|
||
|