folderView: Reset schemas before removing the folder
When removing the last icon of a folder, FolderView first removes the folder from org.gnome.desktop.app-folders.folder-children, then proceeds to reset all its keys, which removes the relocatable schema. That order of operations turns out to be problematic. Removing the folder from 'folder-children' destroys the folder icon, which in turn destroys the folder view, which throws a load of warnings in the journal. Fix that by removing the folder after resetting the schema keys. In fact, what we're doing here is not using 'this' anymore. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/841
This commit is contained in:
parent
b88f7d0655
commit
aa1d297bdf
@ -1397,15 +1397,15 @@ var FolderView = class FolderView extends BaseAppView {
|
|||||||
// Remove the folder if this is the last app icon; otherwise,
|
// Remove the folder if this is the last app icon; otherwise,
|
||||||
// just remove the icon
|
// just remove the icon
|
||||||
if (folderApps.length == 0) {
|
if (folderApps.length == 0) {
|
||||||
let settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.app-folders' });
|
|
||||||
let folders = settings.get_strv('folder-children');
|
|
||||||
folders.splice(folders.indexOf(this._id), 1);
|
|
||||||
settings.set_strv('folder-children', folders);
|
|
||||||
|
|
||||||
// Resetting all keys deletes the relocatable schema
|
// Resetting all keys deletes the relocatable schema
|
||||||
let keys = this._folder.settings_schema.list_keys();
|
let keys = this._folder.settings_schema.list_keys();
|
||||||
for (let key of keys)
|
for (let key of keys)
|
||||||
this._folder.reset(key);
|
this._folder.reset(key);
|
||||||
|
|
||||||
|
let settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.app-folders' });
|
||||||
|
let folders = settings.get_strv('folder-children');
|
||||||
|
folders.splice(folders.indexOf(this._id), 1);
|
||||||
|
settings.set_strv('folder-children', folders);
|
||||||
} else {
|
} else {
|
||||||
this._folder.set_strv('apps', folderApps);
|
this._folder.set_strv('apps', folderApps);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user