如何修改影响parent()的_init()?

时间:2015-11-29 10:34:52

标签: javascript gnome-shell gnome-shell-extensions

我正在尝试更新Gnome-shell扩展程序。在其中,我重写了一个对象的_init方法,我这样做:

function newInitAppSwitcherPopup() {
     this.parent();        
     ...
}
AltTab.AppSwitcherPopup.prototype._init = newInitAppSwitcherPopup;

新方法失败了:

  

JS错误:TypeError:方法' parent'不能被称为

我觉得这里非常令人惊讶的是parent方法确实存在(如果我更改了名称,我得到了一个"未定义"错误)。

我不明白的是,原始的AppSwitcherPopup._init仍在使用此父级调用(https://git.gnome.org/browse/gnome-shell/tree/js/ui/altTab.js?h=gnome-3-16#n54)。

这在Gnome 3.12下运行良好,但是对于Gnome 3.16而言已经破解了......我猜他们在GObject或继承模型中改变了一些东西?

1 个答案:

答案 0 :(得分:0)

我有一个类似的代码适用于我的配置小部件

const MenuConfigWidget = new GObject.Class({
  Name: 'SimpleMenu.Prefs.MenuConfigWidget',
  GTypeName: 'SimpleMenuMenuConfigWidget',
  Extends: Gtk.Grid,

  _init: function(params) {
    this.parent({... }); 
    ...
  }
});

你是否扩展了我们的猴子补丁_init函数?