Auto sync2gitlab import of gnome-shell-extensions-3.32.1-30.el8.src.rpm
This commit is contained in:
parent
81bd7e95a3
commit
04a1f36e3d
31
0001-fileItem-Just-destroy-menus.patch
Normal file
31
0001-fileItem-Just-destroy-menus.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 506c6d69eaa5e056d9580a28e9c200586b0e1fb0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Fri, 2 Dec 2022 15:20:40 +0100
|
||||||
|
Subject: [PATCH] fileItem: Just destroy menus
|
||||||
|
|
||||||
|
The menu manager is smart enough to remove the menu automatically,
|
||||||
|
and the actor will be destroyed alongside the menu. Not doing those
|
||||||
|
actions explicitly allows the automatic handling to proceed without
|
||||||
|
confusing the grab state.
|
||||||
|
---
|
||||||
|
extensions/desktop-icons/fileItem.js | 4 ----
|
||||||
|
1 file changed, 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
|
||||||
|
index 44a93352..f2f03440 100644
|
||||||
|
--- a/extensions/desktop-icons/fileItem.js
|
||||||
|
+++ b/extensions/desktop-icons/fileItem.js
|
||||||
|
@@ -575,10 +575,6 @@ var FileItem = class {
|
||||||
|
|
||||||
|
_removeMenu() {
|
||||||
|
if (this._menu != null) {
|
||||||
|
- if (this._menuManager != null)
|
||||||
|
- this._menuManager.removeMenu(this._menu);
|
||||||
|
-
|
||||||
|
- Main.layoutManager.uiGroup.remove_child(this._menu.actor);
|
||||||
|
this._menu.destroy();
|
||||||
|
this._menu = null;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
147
0001-fileItem-Support-.desktop-files-of-type-Link.patch
Normal file
147
0001-fileItem-Support-.desktop-files-of-type-Link.patch
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
From be4ab59a3f2bb9829dde390db3dd8868a08840eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Fri, 2 Dec 2022 19:28:54 +0100
|
||||||
|
Subject: [PATCH] fileItem: Support .desktop files of type Link
|
||||||
|
|
||||||
|
Gio only has direct support for .desktop files of type Application.
|
||||||
|
|
||||||
|
However in the context of desktop icons (and file managers), shortcuts
|
||||||
|
of URLs are useful as well, so add explicit support for .desktop files
|
||||||
|
of type Link.
|
||||||
|
---
|
||||||
|
extensions/desktop-icons/fileItem.js | 71 +++++++++++++++++++++++-----
|
||||||
|
1 file changed, 60 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
|
||||||
|
index f2f03440..1c9a1e55 100644
|
||||||
|
--- a/extensions/desktop-icons/fileItem.js
|
||||||
|
+++ b/extensions/desktop-icons/fileItem.js
|
||||||
|
@@ -239,12 +239,32 @@ var FileItem = class {
|
||||||
|
log(`desktop-icons: File ${this._displayName} is writable by others - will not allow launching`);
|
||||||
|
|
||||||
|
if (this._isDesktopFile) {
|
||||||
|
- this._desktopFile = Gio.DesktopAppInfo.new_from_filename(this._file.get_path());
|
||||||
|
- if (!this._desktopFile) {
|
||||||
|
- log(`Couldn’t parse ${this._displayName} as a desktop file, will treat it as a regular file.`);
|
||||||
|
+ try {
|
||||||
|
+ const keyFile = new GLib.KeyFile();
|
||||||
|
+ keyFile.load_from_file(this._file.get_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);
|
||||||
|
+ if (!this._desktopFile) {
|
||||||
|
+ log(`Couldn’t parse ${this._displayName} as a desktop file, will treat it as a regular file.`);
|
||||||
|
+ this._isValidDesktopFile = false;
|
||||||
|
+ } else {
|
||||||
|
+ this._isValidDesktopFile = true;
|
||||||
|
+ }
|
||||||
|
+ break;
|
||||||
|
+ case GLib.KEY_FILE_DESKTOP_TYPE_LINK:
|
||||||
|
+ const url = keyFile.get_string(
|
||||||
|
+ GLib.KEY_FILE_DESKTOP_GROUP, GLib.KEY_FILE_DESKTOP_KEY_URL);
|
||||||
|
+ if (url)
|
||||||
|
+ this._linkFile = keyFile;
|
||||||
|
+ default: // fall-through
|
||||||
|
+ this._isValidDesktopFile = false;
|
||||||
|
+ }
|
||||||
|
+ } catch (e) {
|
||||||
|
this._isValidDesktopFile = false;
|
||||||
|
- } else {
|
||||||
|
- this._isValidDesktopFile = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this._isValidDesktopFile = false;
|
||||||
|
@@ -356,8 +376,17 @@ var FileItem = class {
|
||||||
|
if (this._isBrokenSymlink) {
|
||||||
|
this._icon.child = this._createEmblemedStIcon(null, 'text-x-generic');
|
||||||
|
} else {
|
||||||
|
- if (this.trustedDesktopFile && this._desktopFile.has_key('Icon'))
|
||||||
|
- this._icon.child = this._createEmblemedStIcon(null, this._desktopFile.get_string('Icon'));
|
||||||
|
+ let iconName = null;
|
||||||
|
+
|
||||||
|
+ try {
|
||||||
|
+ if (this.trustedDesktopFile)
|
||||||
|
+ iconName = this._desktopFile.get_string('Icon');
|
||||||
|
+ else if (this._linkFile)
|
||||||
|
+ iconName = this._linkFile.get_string(GLib.KEY_FILE_DESKTOP_GROUP, GLib.KEY_FILE_DESKTOP_KEY_ICON);
|
||||||
|
+ } catch (e) {}
|
||||||
|
+
|
||||||
|
+ if (iconName)
|
||||||
|
+ this._icon.child = this._createEmblemedStIcon(null, iconName);
|
||||||
|
else
|
||||||
|
this._icon.child = this._createEmblemedStIcon(this._fileInfo.get_icon(), null);
|
||||||
|
}
|
||||||
|
@@ -411,7 +440,7 @@ var FileItem = class {
|
||||||
|
itemIcon.add_emblem(Gio.Emblem.new(Gio.ThemedIcon.new('emblem-unreadable')));
|
||||||
|
else
|
||||||
|
itemIcon.add_emblem(Gio.Emblem.new(Gio.ThemedIcon.new('emblem-symbolic-link')));
|
||||||
|
- } else if (this.trustedDesktopFile) {
|
||||||
|
+ } else if (this.trustedDesktopFile || this._linkFile) {
|
||||||
|
itemIcon.add_emblem(Gio.Emblem.new(Gio.ThemedIcon.new('emblem-symbolic-link')));
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -440,6 +469,12 @@ var FileItem = class {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (this._linkFile) {
|
||||||
|
+ this._openUri(this._linkFile.get_string(
|
||||||
|
+ GLib.KEY_FILE_DESKTOP_GROUP, GLib.KEY_FILE_DESKTOP_KEY_URL));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (this._attributeCanExecute &&
|
||||||
|
!this._isDirectory &&
|
||||||
|
!this._isValidDesktopFile &&
|
||||||
|
@@ -449,13 +484,17 @@ var FileItem = class {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- Gio.AppInfo.launch_default_for_uri_async(this.file.get_uri(),
|
||||||
|
+ this._openUri(this.file.get_uri());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ _openUri(uri) {
|
||||||
|
+ Gio.AppInfo.launch_default_for_uri_async(uri,
|
||||||
|
null, null,
|
||||||
|
(source, result) => {
|
||||||
|
try {
|
||||||
|
Gio.AppInfo.launch_default_for_uri_finish(result);
|
||||||
|
} catch (e) {
|
||||||
|
- log('Error opening file ' + this.file.get_uri() + ': ' + e.message);
|
||||||
|
+ log('Error opening file ' + uri + ': ' + e.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
@@ -555,7 +594,9 @@ var FileItem = class {
|
||||||
|
}
|
||||||
|
|
||||||
|
canRename() {
|
||||||
|
- return !this.trustedDesktopFile && this._fileExtra == Prefs.FileType.NONE;
|
||||||
|
+ return !this.trustedDesktopFile &&
|
||||||
|
+ !this._linkFile &&
|
||||||
|
+ this._fileExtra == Prefs.FileType.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
_doOpenWith() {
|
||||||
|
@@ -819,6 +860,14 @@ var FileItem = class {
|
||||||
|
if (this.trustedDesktopFile)
|
||||||
|
return this._desktopFile.get_name();
|
||||||
|
|
||||||
|
+ if (this._linkFile) {
|
||||||
|
+ try {
|
||||||
|
+ const name = this._linkFile.get_string(
|
||||||
|
+ GLib.KEY_FILE_DESKTOP_GROUP, GLib.KEY_FILE_DESKTOP_KEY_NAME);
|
||||||
|
+ return name;
|
||||||
|
+ } catch (e) {}
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return this._displayName || null;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Name: gnome-shell-extensions
|
Name: gnome-shell-extensions
|
||||||
Version: 3.32.1
|
Version: 3.32.1
|
||||||
Release: 29%{?dist}
|
Release: 30%{?dist}
|
||||||
Summary: Modify and extend GNOME Shell functionality and behavior
|
Summary: Modify and extend GNOME Shell functionality and behavior
|
||||||
|
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
@ -51,6 +51,8 @@ Patch0022: 0001-gesture-inhibitor-Put-a-foot-down-with-self-enabling.pat
|
|||||||
Patch0023: 0001-desktop-icons-Use-a-single-unique-name-to-access-nau.patch
|
Patch0023: 0001-desktop-icons-Use-a-single-unique-name-to-access-nau.patch
|
||||||
Patch0024: window-list-touch.patch
|
Patch0024: window-list-touch.patch
|
||||||
Patch0025: 0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch
|
Patch0025: 0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch
|
||||||
|
Patch0026: 0001-fileItem-Just-destroy-menus.patch
|
||||||
|
Patch0027: 0001-fileItem-Support-.desktop-files-of-type-Link.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
GNOME Shell Extensions is a collection of extensions providing additional and
|
GNOME Shell Extensions is a collection of extensions providing additional and
|
||||||
@ -549,6 +551,12 @@ cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 09 2022 Florian Müllner <fmuellner@redhat.com> - 3.32.1-30
|
||||||
|
- Fix stuck grab if disabled with open context menu
|
||||||
|
Resolves: #2149670
|
||||||
|
- Support .desktop files of type Link
|
||||||
|
Resolves: #2143825
|
||||||
|
|
||||||
* Mon Aug 29 2022 Jonas Ådahl <jadahl@redhat.com> - 3.32.1-29
|
* Mon Aug 29 2022 Jonas Ådahl <jadahl@redhat.com> - 3.32.1-29
|
||||||
- Avoid invalid window management in auto-move-windows
|
- Avoid invalid window management in auto-move-windows
|
||||||
Resolves: #2089311
|
Resolves: #2089311
|
||||||
|
Loading…
Reference in New Issue
Block a user