Я пытаюсь исправить и улучшить всплывающую подсказку gs-ext-applications-overview-tooltip, созданную Франко Бьянкони, чтобы она работала в gnome-shell 3.10 и 3.12. Я разветвил его код на git-hub и смог исправить некоторые проблемы и внести некоторые улучшения. К моему большому удивлению, расширение теперь работает в оболочке gnome 3.12, также предоставленные мной улучшения работают, как и ожидалось. Мой код находится здесь, на github.
Моя проблема в том, что расширение не работает сразу после запуска или после перезапуска gnome-shell. Я должен отключить расширение и снова включить его. Затем всплывающие подсказки в обзоре приложений отображаются, как и ожидалось. Если я перезапущу gnome-shell (Alt + F2: r), я должен сделать то же самое.
Мне не удалось найти в журналах никаких связанных сообщений об ошибках, и я не знаю, чем это вызвано. Может ли кто-нибудь дать мне несколько советов?
РЕДАКТИРОВАТЬ:
На самом деле я только что понял, что вызывает это. Расширение позволяет получать ссылки на аппиконы из обзора, если оно включено.
let appIcons = Main.overview.viewSelector.appDisplay._views[1].view._items;
Это приводит к пустому объекту appIcons, когда обзор приложения еще не был «посещен», что происходит после входа в систему или перезапуска gnome-shell. Если я перехожу в обзорное меню и затем снова включаю расширение, оно работает, потому что оно может получить ссылку на значки приложений из обзора.
Вопрос: как мне решить проблему?
РЕДАКТИРОВАТЬ2:
Я только что понял это, если сделаю следующее:
let appIcons;
appIcons = Main.overview.viewSelector.appDisplay._views[1].view._items;
Object.getOwnPropertyNames(appIcons);
в консоли зеркала сразу после перезапуска gnome-shel отображаются все приложения из обзора приложений. Так что это работает так, как ожидалось. Только расширение ведет себя по-другому, и мне нужно сначала посетить обзор и снова включить расширение.