mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
extensionPrefs: Sync list visibility on status changes
We only show the list of system- and user extensions if corresponding extensions are installed, however we only update the visibility after loading the initial list of extensions. As it's possible for the first user extension to be installed while the app is open or the last one to be removed, we should also update the list visibility after extension state changes. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1088
This commit is contained in:
parent
eb3c857f23
commit
7d94bfa642
1 changed files with 15 additions and 10 deletions
|
|
@ -423,9 +423,11 @@ var ExtensionsWindow = GObject.registerClass({
|
|||
if (row) {
|
||||
if (extension.state === ExtensionState.UNINSTALLED)
|
||||
row.destroy();
|
||||
return; // we only deal with new and deleted extensions here
|
||||
} else {
|
||||
this._addExtensionRow(extension);
|
||||
}
|
||||
this._addExtensionRow(extension);
|
||||
|
||||
this._syncListVisibility();
|
||||
}
|
||||
|
||||
_scanExtensions() {
|
||||
|
|
@ -471,6 +473,16 @@ var ExtensionsWindow = GObject.registerClass({
|
|||
});
|
||||
}
|
||||
|
||||
_syncListVisibility() {
|
||||
this._userList.visible = this._userList.get_children().length > 0;
|
||||
this._systemList.visible = this._systemList.get_children().length > 0;
|
||||
|
||||
if (this._userList.visible || this._systemList.visible)
|
||||
this._mainStack.visible_child_name = 'main';
|
||||
else
|
||||
this._mainStack.visible_child_name = 'placeholder';
|
||||
}
|
||||
|
||||
_checkUpdates() {
|
||||
let nUpdates = this._userList.get_children().filter(c => c.hasUpdate).length;
|
||||
|
||||
|
|
@ -482,14 +494,7 @@ var ExtensionsWindow = GObject.registerClass({
|
|||
}
|
||||
|
||||
_extensionsLoaded() {
|
||||
this._userList.visible = this._userList.get_children().length > 0;
|
||||
this._systemList.visible = this._systemList.get_children().length > 0;
|
||||
|
||||
if (this._userList.visible || this._systemList.visible)
|
||||
this._mainStack.visible_child_name = 'main';
|
||||
else
|
||||
this._mainStack.visible_child_name = 'placeholder';
|
||||
|
||||
this._syncListVisibility();
|
||||
this._checkUpdates();
|
||||
|
||||
if (this._startupUuid)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue