You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnome-shell-extensions/SOURCES/0001-desktop-icons-Fix-k-in...

43 lines
1.9 KiB

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(`Couldnt parse ${this._displayName} as a desktop file, will treat it as a regular file.`);
this._isValidDesktopFile = false;
--
2.47.1