diff --git a/gnome-shell-add-app-to-desktop.patch b/gnome-shell-add-app-to-desktop.patch deleted file mode 100644 index f92ffa4..0000000 --- a/gnome-shell-add-app-to-desktop.patch +++ /dev/null @@ -1,141 +0,0 @@ -Index: gnome-shell-extensions-43.rc/extensions/apps-menu/extension.js -=================================================================== ---- gnome-shell-extensions-43.rc.orig/extensions/apps-menu/extension.js -+++ gnome-shell-extensions-43.rc/extensions/apps-menu/extension.js -@@ -5,6 +5,8 @@ const { - Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St, - } = imports.gi; - const {EventEmitter} = imports.misc.signals; -+const BoxPointer = imports.ui.boxpointer; -+const AppFavorites = imports.ui.appFavorites; - - const DND = imports.ui.dnd; - const ExtensionUtils = imports.misc.extensionUtils; -@@ -48,8 +50,19 @@ class ApplicationMenuItem extends PopupM - let textureCache = St.TextureCache.get_default(); - let iconThemeChangedId = textureCache.connect('icon-theme-changed', - this._updateIcon.bind(this)); -+ -+ this.actor.connect('button-press-event', this._onButtonPress.bind(this)); -+ this.actor.connect('popup-menu', this._onKeyboardPopupMenu.bind(this)); -+ this._menu = null; -+ this._menuManager = new PopupMenu.PopupMenuManager(this); -+ - this.connect('destroy', () => { - textureCache.disconnect(iconThemeChangedId); -+ if (this._menu) { -+ this._menu.destroy(); -+ this._menu = null; -+ this._menuManager = null; -+ } - }); - this._updateIcon(); - -@@ -64,6 +77,107 @@ class ApplicationMenuItem extends PopupM - }; - } - -+ _onKeyboardPopupMenu() { -+ this.popupMenu(); -+ this._menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); -+ } -+ -+ _onButtonPress(actor, event) { -+ // close any opened menu to avoid input focus grab -+ if (this._menu && this._menu.isOpen) { -+ this._menu.close(); -+ return Clutter.EVENT_STOP; -+ } -+ -+ let button = event.get_button(); -+ if (button == 3) { -+ this.popupMenu(); -+ return Clutter.EVENT_STOP; -+ } -+ return Clutter.EVENT_PROPAGATE -+ } -+ -+ popupMenu() { -+ if (!this._menu) { -+ this._menu = new PopupMenu.PopupMenu(this.actor, 0.0, St.Side.TOP, 0); -+ let openItem = new PopupMenu.PopupMenuItem(_("Open")); -+ this._menu.addMenuItem(openItem); -+ openItem.connect('activate', () => { -+ this._menu.destroy(); -+ this._menu = null; -+ this._app.open_new_window(-1); -+ this._button.selectCategory(null, null); -+ this._button.menu.toggle(); -+ }); -+ -+ let sepItem = new PopupMenu.PopupSeparatorMenuItem(); -+ this._menu.addMenuItem(sepItem); -+ -+ let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._app.get_id()); -+ let favText = null; -+ if (isFavorite) -+ favText = _("Remove from Favorites"); -+ else -+ favText = _("Add to Favorites"); -+ -+ let favItem = new PopupMenu.PopupMenuItem(favText); -+ this._menu.addMenuItem(favItem); -+ favItem.connect('activate', () => { -+ let favs = AppFavorites.getAppFavorites(); -+ let isFavorite = favs.isFavorite(this._app.get_id()); -+ if (isFavorite) -+ favs.removeFavorite(this._app.get_id()); -+ else -+ favs.addFavorite(this._app.get_id()); -+ -+ /*As the item text changes, we need to re-generate the menu */ -+ this._menu.destroy(); -+ this._menu = null; -+ -+ this._button.selectCategory(null, null); -+ this._button.menu.toggle(); -+ }); -+ -+ let desktopItem = new PopupMenu.PopupMenuItem(_("Add to Desktop")); -+ this._menu.addMenuItem(desktopItem); -+ desktopItem.connect('activate', () => { -+ let desktopApp = this._app.get_app_info(); -+ let sourcePath = desktopApp.get_filename(); -+ let sourceFile = Gio.File.new_for_path(sourcePath); -+ let destDirPath = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP); -+ let destDir = Gio.File.new_for_path(destDirPath); -+ -+ if (!destDir.query_exists(null)) { -+ destDirPath = Glib.build_filenamev([GLib.get_home_dir(), "Desktop"]); -+ } -+ let destFile = Gio.File.new_for_path(destDirPath + '/' + sourceFile.get_basename()); -+ if (sourceFile.copy(destFile, Gio.FileCopyFlags.OVERWRITE, null, null)) { -+ // In order to make the general monitor recognize the setting of metadata, -+ // this function call should before the setting of unix mode. -+ let info = new Gio.FileInfo(); -+ info.set_attribute_string('metadata::trusted', 'true'); -+ destFile.set_attributes_from_info(info, -+ Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null); -+ destFile.set_attribute_uint32( Gio.FILE_ATTRIBUTE_UNIX_MODE, parseInt("0755", 8), -+ Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null); -+ } -+ this._menu.destroy(); -+ this._menu = null; -+ this._button.selectCategory(null, null); -+ this._button.menu.toggle(); -+ }); -+ -+ Main.uiGroup.add_actor(this._menu.actor); -+ -+ this._menuManager.addMenu(this._menu); -+ } -+ -+ this._menu.open(BoxPointer.PopupAnimation.NONE); -+ this._menuManager.ignoreRelease(); -+ -+ return false; -+ } -+ - activate(event) { - this._app.open_new_window(-1); - this._button.selectCategory(null); diff --git a/gnome-shell-extensions-43.1.tar.xz b/gnome-shell-extensions-43.1.tar.xz deleted file mode 100644 index 53cb4f5..0000000 Binary files a/gnome-shell-extensions-43.1.tar.xz and /dev/null differ diff --git a/gnome-shell-extensions-44.0.tar.xz b/gnome-shell-extensions-44.0.tar.xz new file mode 100644 index 0000000..7585bce Binary files /dev/null and b/gnome-shell-extensions-44.0.tar.xz differ diff --git a/gnome-shell-extensions.spec b/gnome-shell-extensions.spec index 635332e..9a688b1 100644 --- a/gnome-shell-extensions.spec +++ b/gnome-shell-extensions.spec @@ -1,13 +1,12 @@ %global pkg_prefix gnome-shell-extension Name: gnome-shell-extensions -Version: 43.1 +Version: 44.0 Release: 1 Summary: Modify and extend GNOME Shell functionality and behavior License: GPLv2+ URL: https://wiki.gnome.org/Projects/GnomeShell/Extensions -Source0: https://download.gnome.org/sources/gnome-shell-extensions/43/%{name}-%{version}.tar.xz -Patch1: gnome-shell-add-app-to-desktop.patch +Source0: https://download.gnome.org/sources/gnome-shell-extensions/44/%{name}-%{version}.tar.xz BuildArch: noarch @@ -41,8 +40,7 @@ to execute additional and optional function. %build %meson \ -D classic_mode=true \ - -D extension_set=classic \ - -D enable_extensions="apps-menu,places-menu,launch-new-instance,window-list,workspace-indicator,user-theme" + -D extension_set="all" %meson_build %install @@ -83,6 +81,9 @@ mkdir -p %{buildroot}/usr/share/gnome-shell/extensions/screenshot-window-sizer %{_datadir}/wayland-sessions/gnome-*.desktop %changelog +* Mon Nov 27 2023 lwg - 44.0-1 +- update to version 44.0 + * Mon Jan 02 2023 lin zhang - 43.1-1 - Update to 43.1