gnome-shell 3.34 отсутствует свойство ExtensionUtils.extension - PullRequest
2 голосов
/ 24 сентября 2019

Я написал расширение оболочки gnome для gnome3.30-3.32, используя:

const ExtensionUtils = imports.misc.extensionUtils;
...

ExtensionSystem.disableExtension(ExtensionUtils.extensions['extension-uuid'].uuid);

При обновлении до версии 3.34, ExtensionUtils не предоставляет свойства 'extension', и я не знаю, как найтидокументация по этому поводу.

Кто-нибудь знает, как решить проблему?

Заранее спасибо.

1 Ответ

1 голос
/ 24 сентября 2019

Код, который вы ищете, карта загруженных расширений, также является частью модуля ExtensionSystem, тогда как модуль ExtensionUtils в основном является утилитами для авторов расширений, таких как GSettings и помощники Gettext.

Функции, которые вы ищете, являются частью класса ExtensionManager в 3.34+.Вы можете получить ExtensionManager экземпляр из Main import:

// >= 3.34
const Main = imports.ui.main;
const ExtensionManager = Main.extensionManager;

ExtensionManager.disableExtension(uuid);

// <= 3.32
const ExtensionSystem = imports.misc.extensionSystem;

ExtensionSystem.disableExtension(uuid);


// Handling both versions
const Config = imports.misc.config;

if (Config.PACKAGE_VERSION.split('.')[1] >= 34) {
    let manager = imports.ui.main.extensionManager;

    manager.disableExtension(uuid);
} else {
    let extSystem = imports.misc.extensionSystem;

    extSystem.disableExtension(uuid);
}

Источники:

Вы можете использовать селектор веток в левой части страницы GitLab для выбора версии или кнопку истории справа для просмотра списка изменений в данном файле.

...