Напишите расширение для gnome-shell 3.4 и 3.6

Я пишу расширение для gnome-shell. Но в gnome-shell 3.4 меню добавляется panel._menus и в gnome-shell3.6 используя panel.menuManager, Как мне добавить меню, которое работает на каждой версии?

1 ответ

Решение

Есть несколько способов сделать это.

Вы можете проверить на наличие panel._menus и используйте это, если оно существует, в противном случае используйте panel.menuManager:

let menuManager = panel._menus || panel.menuManager
// now do everything with menuManager

Или вы можете явно проверить версию gnome-shell:

const ShellVersion = imports.misc.config.PACKAGE_VERSION.split(".").map(
   function (x) { return +x; }) // <-- converts from string to number
// this is now an array, e.g. if I am on gnome-shell 3.6.2 it is [3, 6, 2].

if (ShellVersion[1] === 4) {
    // GNOME 3.4, use panel._menus
} else if (ShellVersion[1] === 6) {
    // GNOME 3.6, use panel.menuManager
}
Другие вопросы по тегам