実行時にPanelMenu.Buttonアイコンをリセットする方法は?

実行時にPanelMenu.Buttonアイコンをリセットする方法は?

私はgjsを使ってGNOME Shell拡張を開発しています。現在、panelMenu.Buttonアイコンは次のように設定されています。

class MenuButton extends PanelMenu.Button {
...
...
setIcon() {
    const icon_class = ICON_CLASS[this._settings.get_enum("icon")];
    this.icon = new St.Icon({
      style_class: icon_class,
    });

    this.add_actor(this.icon);
  }
...
}

設定された信号が変更をトリガする場合:

this._settingsC = this._settings.connect("changed", () => this.resetIcon());

ResetIcon() は次のようになります。

resetIcon() {
    this.remove(this.icon)
    const icon_class = ICON_CLASS[this._settings.get_enum("icon")];
    this.icon = new St.Icon({
      style_class: icon_class,
    });
    this.add_actor(this.icon);
  }

ただし、実行時にアイコンを変更/再レンダリングしません。拡張機能を再ロードすると、変更のみが表示されます。

実行時にアイコンを変更する方法は?

ベストアンサー1

おすすめ記事