レイズでアクティブ化された GNOME Shell 3.16 拡張機能については、AppSwitcherPopup._finish
メソッドにモンキー パッチを適用しようとしています。元のと同様に、パッチを適用したバージョンでは次のように呼び出しますthis.parent
。
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
_parent@resource:///org/gnome/gjs/modules/lang.js:129
_modifiedFinish@/home/lastorset/.local/share/gnome-shell/extensions/Alt_Tab_Mod_Only_Raise_Activated_Window@dsboger.com.br/extension.js:34
SwitcherPopup<._keyReleaseEvent@resource:///org/gnome/shell/ui/switcherPopup.js:199
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
この場合、SwitcherPopup._keyReleaseEvent
は を呼び出しthis
ており、サブクラスのインスタンスであるthis
必要があります。パッチを適用した後も同じはずだとAppSwitcherPopup
思いますが、なぜ発信者に電話をかけようとしているのですか? this.parent
さらに言えば、なぜそれが成功しないのでしょうか?
を生成したGJS コードを調べましたが、this.parent
何が欠けているのかわかりません。