0

在尝试从另一个弹出菜单打开弹出菜单时,我遇到了一个小问题。当我打开子菜单时,两个菜单都会关闭。我正在使用的一个临时解决方案是在单击时关闭原始菜单,然后子菜单保持打开状态。我认为他们都试图抓住焦点并因此而关闭。有谁知道在 gnome shell 扩展中创建分层弹出菜单的合理方法?

4

1 回答 1

1

外壳中的菜单系统在信号和打开和关闭方面有点复杂。如果你还没有的话,你绝对应该看看popupMenu.js 。

如果我回忆起自己的冒险经历,由于信号传播的方式,子菜单中不可能有子菜单,但您可以对这些类中的任何一个进行子类化并修改信号,或者您可以通过添加操纵visibility属性来伪造自己的子菜单:

在此处输入图像描述

还可以查看带有评论的PopupMenuSection类:

故意忽略任何打开()或关闭()的尝试,但发出相应的信号,以便孩子们仍然可以拿起它

于 2017-10-19T00:52:34.583 回答