0
對於raise-activated GNOME Shell 3.16擴展我試圖對AppSwitcherPopup._finish
方法進行猴修補。像original,已修補版本調用this.parent
:GNOME Shell擴展的猴子補丁後,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
[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
,但我不能找到缺少的東西。