Для расширения raise-activated Расширение GNOME Shell 3.16 Я пытаюсь обезвредить метод AppSwitcherPopup._finish
. Как original, пропатченный называют this.parent
:После того, как расширение оболочки GNOME Shell было исправлено, этот параметр неожиданен
function _modifiedFinish(timestamp) {
// ...monkey-patched code...
this.parent(timestamp);
}
function enable() {
_originalFinish = AltTab.AppSwitcherPopup.prototype._finish;
AltTab.AppSwitcherPopup.prototype._finish = _modifiedFinish;
}
Но я получаю эту трассировку стеки в консоли (от запуска gnome-shell --replace
):
(gnome-shell:24452): Gjs-WARNING **: JS ERROR: TypeError: The method '_keyReleaseEvent' is not on the superclass
[email protected]:///org/gnome/gjs/modules/lang.js:129
[email protected]/home/lastorset/.local/share/gnome-shell/extensions/[email protected]/extension.js:34
SwitcherPopup<[email protected]:///org/gnome/shell/ui/switcherPopup.js:199
[email protected]:///org/gnome/gjs/modules/lang.js:169
В этом случае, SwitcherPopup._keyReleaseEvent
вызывает this
, а this
должен является экземпляром подкласса AppSwitcherPopup
. Я считаю, что this.parent
должно быть таким же после исправления - почему он теперь пытается вызвать вызывающего? И в этом отношении, почему это не удается?
Я искал GJS code, который сгенерировал this.parent
, но я не могу понять, чего не хватает.