From 39d1c578c3d6a72085043739510fa999fc8b894a Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sun, 23 Feb 2025 14:41:26 -0500 Subject: [PATCH] Reset app details menu on setting change gh-2244 --- src/appIcons.js | 22 ++++++++++++++++++++-- ui/BoxSecondaryMenuOptions.ui | 1 + 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/appIcons.js b/src/appIcons.js index b6d82a6..00e89c0 100644 --- a/src/appIcons.js +++ b/src/appIcons.js @@ -1904,6 +1904,12 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu { // replace quit item delete this._quitItem this._quitItem = this.addAction(_('Quit'), () => this._quitFromTaskbar()) + + source._signalsHandler.add([ + SETTINGS, + 'changed::secondarymenu-contains-showdetails', + () => this._setAppDetailsVisibility(source.app), + ]) } updateQuitText() { @@ -1946,9 +1952,21 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu { super.setApp(app) // set "App Details" menu item visibility + this._setAppDetailsVisibility(app) + } + + _setAppDetailsVisibility(app) { + // This next line sets the app details menu to visible if Gnome Software is + // installed. If it isn't, no point of showing the menu anymay because + // its only purpose is to opens Gnome Software + super._updateDetailsVisibility() + + let gnomeSoftwareIsInstalled = this._detailsItem.visible + this._detailsItem.visible = - !app.hideDetails && - SETTINGS.get_boolean('secondarymenu-contains-showdetails') + gnomeSoftwareIsInstalled && + !app.hideDetails && + SETTINGS.get_boolean('secondarymenu-contains-showdetails') } } diff --git a/ui/BoxSecondaryMenuOptions.ui b/ui/BoxSecondaryMenuOptions.ui index 96602b9..51ecda5 100644 --- a/ui/BoxSecondaryMenuOptions.ui +++ b/ui/BoxSecondaryMenuOptions.ui @@ -28,6 +28,7 @@ <i>App Details</i> menu item + <i>App Details</i> is only available when Gnome Software is installed center